发现了一项特殊测试
查看原帖
发现了一项特殊测试
1457886
poordoor楼主2024/11/9 22:48

不知道为什么(不排除是我错了),但是用DFS时(如下):

#include<bits/stdc++.h>
using namespace std;
int tx[4]={1,0,-1,0},ty[4]={0,1,0,-1};
char d[110][110];
int a[110][110];
	int n,m;
void turn(int x,int y){
	a[x][y]=0; 
	for(int i=0;i<=3;i++){
		int fx=x+tx[i],fy=y+ty[i];
		if(a[fx][fy]>=1&&a[fx][fy]<=9)
		turn(fx,fy);
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>d[i][j];
			a[i][j]=d[i][j]-'0';
		}
	}
	int sum=0;
		for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]>=1&&a[i][j]<=9){
				sum++; 
				turn(i,j);
			}
		}
	}
	cout<<sum;
	return 0;
}

测试 5 10 12345 12345 12345 12345 12345 12345 12345 12345 00000 23145 时出了问题。 虽然AC了,但是心痒痒的难受。

2024/11/9 22:48
加载中...