社区讨论
70分RE!!(求大佬,会关注的)
P114101迷宫参与者 5已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lyr0t711
- 此快照首次捕获于
- 2024/07/18 16:39 2 年前
- 此快照最后确认于
- 2024/07/18 17:15 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
int n,m,ma[1000][10000],book[1000][10000];
struct node{
int x,y,step;
}q[101011000];
int bfs(int sx,int sy){
int head=0,tail=0;
q[tail].x=sx;
q[tail].y=sy;
q[tail].step=ma[sx][sy];
int sum=1;
book[sx][sy]=1;
tail++;
int nex[4][2]={{0,1},
{1,0},
{0,-1},
{-1,0}};
while(head<tail){
node h=q[head];
for(int k=0;k<4;k++){
int tx=h.x+nex[k][0];
int ty=h.y+nex[k][1];
if(tx<1||tx>n||ty<1||ty>n)
continue;
if(book[tx][ty])
continue;
if((ma[tx][ty]==0&&h.step==1)||(ma[tx][ty]==1&&h.step==0)){
sum++;
q[tail].x=tx;
q[tail].y=ty;
q[tail].step=ma[tx][ty];
book[tx][ty]=1;
tail++;
}
}
head++;
}
return sum;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
string s;
cin>>s;
for(int j=0;j<n;j++){
ma[i][j+1]=s[j]-'0';
}
}
// for(int i=1;i<=n;i++){
// for(int j=1;j<=m;j++)
// cout<<ma[i][j]<<" ";
// cout<<endl;
// }
for(int i=1;i<=m;i++){
int ssx,ssy;
cin>>ssx>>ssy;
memset(book,0,sizeof(book));
int ans=bfs(ssx,ssy);
cout<<ans<<endl;
}
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...