0
已解决
潘孝宇
初级光能
初级光能
#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y,st;
};
queue<node> q;
int n,t,ux,uy,dir[4][2]={0,1,1,0,0,-1,-1,0};
bool g[1005][1005],v[1005][1005];
int bfs(int x,int y){
memset(v,false,sizeof(v));
q.push((node){x,y,0});
int cnt=0;
v[x][y]=true;
while(!q.empty()){
node h=q.front();
q.pop();
cnt++;
for(int i=0;i<4;i++){
int dx=h.x+dir[i][0],dy=h.y+dir[i][1];
if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&!v[dx][dy]&&g[dx][dy]!=g[h.x][h.y]){
q.push((node){dx,dy,h.st+1});
v[dx][dy]=true;
}
}
}return cnt;
}
int main(){
cin>>n>>t;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
char c;
cin>>c;
if(c=='0')g[i][j]=0;
if(c=='1')g[i][j]=1;
}
}while(t--){
cin>>ux>>uy;
cout<<bfs(ux,uy)<<endl;
}
return 0;
}
TLE70代码,求优化/更好的方法!谢谢!
潘孝宇在2021-07-21 09:00:06追加了内容
0
0
0
0
0
0
0