社区讨论

本菜鸟在线求助,爆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 条回复,欢迎继续交流。

正在加载回复...