奇怪的事情发生了&萌新求助
查看原帖
奇怪的事情发生了&萌新求助
300283
Yaixy楼主2020/7/27 15:57

萌新在线疑惑,本机运行的答案是对的,到洛谷里就变成错的了,求大佬帮看QWQ/kel

代码:

#include<bits/stdc++.h>
using namespace std;
int i,j,n,m,ans;
char a[105][105];
const int c[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; 
void dfs(int x,int y)
{
	int i,xx,yy;
	for(i=0;i<=3;i++)
	 {
	 	xx=x+c[i][0];
	 	yy=y+c[i][1];
	 	if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]!='0')
	 	 {
	 	 	a[xx][yy]='0';
	 	 	dfs(xx,yy);
		 }
	 }
 } 
 int main()
 {
 	cin>>n>>m;
 	for(i=1;i<=n;i++)
 	 {
 	 	getchar(); 
 	 	for(j=1;j<=m;j++) a[i][j]=getchar(); 
	 }
	for(i=1;i<=n;i++)
	 for(j=1;j<=m;j++)
	  if(a[i][j]!='0')
	   {
	   	  ans++;
	   	  a[i][j]='0';
	   	  dfs(i,j);
	   }
	cout<<ans; 
 	return 0;
 }

样例输入

4 10
0234500067
1034560500
2045600671
0000000089

样例输出:

4

谢谢大佬QAQ

2020/7/27 15:57
加载中...