直接贴代码
#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef pair<int,int> PII;
PII q[1000010];
char a[1010][1010];
bool st[1010][1010];
int n,m,v1,v2;
const int nx[4]={1,-1,0,0};
const int ny[4]={0,0,-1,1};
int bfs(int x,int y){
int hh=0,tt=0,sum=1;
q[0]={x,y};
st[x][y]=true;
while(hh<=tt){
PII t=q[hh++];
for(int i=0;i<4;i++){
if(a[t.x][t.y]==a[t.x+nx[i]][t.y+ny[i]])continue;
if(t.x+nx[i]<0||t.x+nx[i]>=n||t.y+ny[i]<0||t.y+ny[i]>=n)continue;
if(st[t.x+nx[i]][t.y+ny[i]])continue;
q[++tt]={t.x+nx[i],t.y+ny[i]};
st[t.x+nx[i]][t.y+ny[i]]=true;
sum++;
}
}
return sum;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)scanf("%s",a[i]);
for(int k=0;k<m;k++){
cin>>v1>>v2;
memset(st,0,sizeof(st));
cout<<bfs(v1-1,v2-1)<<endl;
}
return 0;
}