全wa
  • 板块P1141 01迷宫
  • 楼主woscxk
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/26 19:42
  • 上次更新2024/7/26 21:08:05
查看原帖
全wa
1245629
woscxk楼主2024/7/26 19:42
#include<bits/stdc++.h>
using namespace std;
struct node{
    int x,y,step;
    bool _t;
}; 
queue<node> que;
node dab(int x,int y,int step,bool _t){
	node m;
	m.x=x;
	m.y=y;
	m.step=step;
	m._t=_t;
	return m;
}
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
int n,m;
int query[100001][2];
bool maps[1001][1001],vis[1001][1001];
int bfs(int x,int y){
	int cnt=0;
	cnt++;
	vis[x][y]=1;
	que.push(dab(x,y,0,maps[x][y]));
	while(1){
		node t=que.front();
		que.pop();
		int cnt2=0;
		for(int i=0;i<4;i++){
			int xx=t.x+dx[i],yy=t.y+dy[i];
			//cout<<t._t;
			if(xx<n&&xx>=0&&yy<n&&yy>=0&&(maps[xx][yy]==!t._t)&&(!vis[xx][yy])){
				cout<<xx<<' '<<yy<<'\n';
				cnt2++;
				cnt++;
				vis[xx][yy]=1;
				que.push(dab(xx,yy,t.step+1,!t._t));
			}
		}
		if(!cnt2)break;
	}
	memset(vis,0,sizeof(vis));
	return cnt;
}
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf("%1d",&maps[i][j]);
    for(int i=0;i<m;i++)cin>>query[i][0]>>query[i][1];;
    for(int i=0;i<m;i++)cout<<bfs(query[i][0]-1,query[i][1]-1)<<'\n';
}
2024/7/26 19:42
加载中...