文章

3

粉丝

294

获赞

0

访问

20.7k

头像
设置辅助队列
P1126
发布于2021年4月17日 20:07
阅读数 6.5k

//设置辅助队列 

​
#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; ++...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发