社区讨论
本菜鸟在线求助,爆0
P114101迷宫参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m3d363qr
- 此快照首次捕获于
- 2024/11/11 21:55 去年
- 此快照最后确认于
- 2025/11/04 14:53 4 个月前
本菜鸟在线求助,爆0
CPP#include<bits/stdc++.h>
using namespace std;
struct nd {
int r,c;
bool w;
};
int n,m,cnt;
int xx[4]= {0,0,1,-1},yy[4]= {1,-1,0,0};
int b[1005][1005],a[100020][2],c[1005][1005];
queue <nd>p;//b存迷宫,a存每组数据,c存走没走过
int main() {
cin >>n>>m;//输入n,m
for(int i=1; i<n; i++) {
for(int j=1; j<n; j++) {
cin >>b[i][j];//输入迷宫
}
}
for(int i=0; i<m; i++) {
cin >>a[i][0]>>a[i][1];//输入每组坐标
}
for(int i=0; i<m; i++) {
for(int q=1; q<=n; q++) {
for(int e=1; e<=n; e++) {
c[q][e]=1;//没走过的都标1
}
}
int cnt=1;
p.push({a[i][0],a[i][1],b[a[i][0]][a[i][1]]});
c[a[i][0]][a[i][1]]=0;
while(!p.empty()) {
nd z=p.front();
p.pop();
for(int j=0; j<4; j++) {
int u=z.r+xx[j],v=z.c+yy[j];
if(u>=1&&u<=n&&v>=1&&v<=n&&z.w!=b[u][v]) {
if(c[u][v]==1) {
c[u][v]=0;
cnt ++;
if(z.w) {
//z.w=1,存0
p.push({u,v,0});
} else {
//z.w=0,存1
p.push({u,v,1});
}
}
}
}
}
cout <<cnt<<endl;
}
帮本人过这题的,长命1000000000000岁
回复
共 1 条回复,欢迎继续交流。
正在加载回复...