社区讨论

求助!求助!

P114101迷宫参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mi85y0g0
此快照首次捕获于
2025/11/21 09:10
4 个月前
此快照最后确认于
2025/11/21 09:10
4 个月前
查看原帖
CPP
#include<iostream>
using namespace std;
long long o[1001][1001],da[1000001],f,e,q1[1000001],q2[1000001],h[4]={1,-1,0,0},s[4]={0,0,1,-1},n,m,p[1001][1001],x[100001],y[100001];
long long cinn(){
	char z[1001][1001];
	for(long long i=1;i<=n;i++)
	for(long long j=1;j<=n;j++){
		cin>>z[i][j];p[i][j]=z[i][j]-'0';
	}
	return 0;
}
long long bfs(){
	for(long long i=1;i<=m;i++){
		cin>>x[i]>>y[i];
		long long xx,yy;
		if(e==1000000) e=0;
        else e++;
		da[i]=1;o[x[i]][y[i]]=0-i;
		q1[f]=x[i];q2[f]=y[i];
		while(f<e){
			for(long long j=0;j<=3;j++){
				xx=q1[f]+h[j];yy=q2[f]+s[j];
				if((o[xx][yy]!=0-i)&&(p[xx][yy]==p[q1[f]][q2[f]]-1||p[xx][yy]==p[q1[f]][q2[f]]+1)&&(p[xx][yy]==0||p[xx][yy]==1)&&(p[q1[f]][q2[f]]==0||p[q1[f]][q2[f]]==1)&&xx>0&&xx<=n&&yy>0&&yy<=n){
					q1[e]=xx;q2[e]=yy;da[i]++;o[xx][yy]=0-i;
					if(e==1000000) e=0;
                    else e++;
				}
			}
			if(f==1000000) f=0;
            else f++;
		}
	}
	return 0;
}
int main(){
	cin>>n>>m;
	cinn();
	bfs();
	for(long long i=1;i<=m;i++)
	cout<<da[i]<<endl;
	return 0;
}
辣鸡代码,请大佬帮忙查错

回复

0 条回复,欢迎继续交流。

正在加载回复...