P1141求助
  • 板块学术版
  • 楼主Indestructible
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/17 21:25
  • 上次更新2024/4/18 12:52:27
查看原帖
P1141求助
1126325
Indestructible楼主2024/4/17 21:25

这题, Luogu 告诉我:90 pts, WA on #3, Wrong Answer.wrong answer Too long on line 1. 而我的结果是:正在比较文件 C:\1.txt 和 D:\DOWNLOADS\P1141_3.OUT.TXT FC: 找不到差异。求 dalao 帮助!

#include<bits/stdc++.h>
using namespace std;
bool a[5010][5010];
int b[5010][5010];
int c[1000010];
int n,m,x,y,t;
int op[4][2]={1,0,0,1,-1,0,0,-1};
string d;
void dfs(int x,int y,int t,int k){
	c[t]++,b[x][y]=t;
	for (int i=0;i<4;i++){
		int dx=x+op[i][0],dy=y+op[i][1];
		if (dx>0 && dx<=n && dy>0 && dy<=n && a[dx][dy]==k^1 && !b[dx][dy]){
			dfs(dx,dy,t,a[dx][dy]);
		}
	}
}
signed main(){
	freopen("C:\\1.txt","w",stdout);
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++){
		cin>>d;
		for (int j=1;j<=n;j++){
			a[i][j]=d[j-1]-'0';
		}
	}
	for (int i=1;i<=n;i++){
		for (int j=1;j<=n;j++){
			if (b[i][j]) continue;
			dfs(i,j,++t,a[i][j]);
		}
	}
	for (int i=1;i<=m;i++){
		scanf("%d%d",&x,&y);
		printf("%d\n",c[b[x][y]]);
	}
	return 0;
}
2024/4/17 21:25
加载中...