白开水不加糖 @ 2024-02-19 17:05:31
#include<cstdio>
#include<queue>
using namespace std;
struct Local{
int x,y;
};
int main(){
int n,m;
scanf("%d%d",&n,&m);
getchar();
char map[1005][1005];
bool visited[1005][1005];
//上右下左
int move[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%c",&map[i][j]);
}
getchar();
}
for(int index=0;index<m;index++){
for(int k=1;k<=n;k++){
for(int j=1;j<=n;j++){
visited[k][j]=false;
}
}
int x,y;
long long cnt=1;
scanf("%d%d",&x,&y);
queue<Local> q;
Local lo;
lo.x=x;
lo.y=y;
q.push(lo);
visited[x][y]=true;
while(!q.empty()){
Local cur=q.front();
q.pop();
for(int i=0;i<4;i++){
int tx=cur.x+move[i][0];
int ty=cur.y+move[i][1];
if(tx>0&&ty>0&&tx<=n&&ty<=n&&!visited[tx][ty]){
if(map[cur.x][cur.y]!=map[tx][ty]){
cnt++;
visited[tx][ty]=true;
Local t;
t.x=tx;t.y=ty;
q.push(t);
}
}
}
}
printf("%lld\n",cnt);
}
return 0;
}
by 白开水不加糖 @ 2024-02-19 17:06:18
除了时间超时还有啥问题吗