3TLE,1RE,剩余全WA
  • 板块P1141 01迷宫
  • 楼主yszkddzyh
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/11/25 21:31
  • 上次更新2023/10/27 01:30:32
查看原帖
3TLE,1RE,剩余全WA
737158
yszkddzyh楼主2022/11/25 21:31
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
const int MAXN=1005;
const int dx[5]={1,0,0,-1};
const int dy[5]={0,1,-1,0};
int a[MAXN][MAXN],n,m,x,y,front,rear,ans;
bool vis[MAXN][MAXN];
char c;
pair<int,int>Q[MAXN*MAXN];
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%c",&c);
		for(int j=1;j<=n;j++){
			scanf("%c",&c);
			a[i][j]=c-48;
		}
	}
	while(m--){
		memset(vis,false,sizeof(vis));
		scanf("%d%d",&x,&y);
		front=rear=1,vis[x][y]=true,Q[1].first=x,Q[1].second=y;
		ans=1;
		for(;front<=rear;){
			int p=Q[front].first,q=Q[front].second;
			front++;
			for(int k=0;k<4;k++){
				int i=p+dx[k],j=q+dy[k];
				if(i<1||j<1||i>n||j>n||vis[i][j]||a[i][j]==a[p][q]) continue;
				rear++,ans++;
				Q[rear].first=i,Q[rear].second=j;
				vis[i][j]=true;
			}
		}
		printf("%d\n",ans);
	}
	return 0;
}

麻烦dalao看看是哪里出问题了,栓Q

2022/11/25 21:31
加载中...