文章
3
粉丝
294
获赞
0
访问
22.0k
//设置辅助队列
#include <bits/stdc++.h>
using namespace std;
const int maxn=100+5;
char mpt[maxn][maxn];
int vis[maxn][maxn];
int dir[4][2]={0,1,1,0,0,-1,-1,0};
struct node
{
int x,y;
};
int dfs(int sx,int sy,int time,int sum)
{
int t1=-1;
memset(vis,0,sizeof(vis));
queue<node> q,p;
q.push(node{sx,sy});
vis[sx][sy]=1;//屁达到的地方
for(int t=1;t<=time;t++)
{
p=q;//记录这一次还在队列中元素
while(!p.empty())
{
node now=p.front();
p.pop();
q.pop();
for(int i=0;i<4;i++)
{
int nx=now.x+dir[i][0];
int ny=now.y+dir[i][1];
if(mpt[nx][ny]=='.'&&vis[nx][ny]!=1)
{
q.push(node{nx,ny});
vis[nx][ny]=1;
sum--;
if(sum==0)
{
t1=t;
}
}
}
}
}
return t1;
}
int main()
{
int h,w,time;
while(cin >> h >> w >> time)
{
int sx,sy;
int sum=0;
for (int i = 0; i < h; ++...
登录后发布评论
暂无评论,来抢沙发