求助万能的谷民
查看原帖
求助万能的谷民
1430257
basella_rubra_cat楼主2024/9/2 08:37

P1451,样例没过,不知为什么,QAQQAQ

CodeCode:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,x,y,ans=0;char k[150][150];
int vis[150][150]={0};
bool v[150][150]={0};
void dfs(int c,int d){
	if(v[c][d]==1||c>n||d>n||k[c][d]=='0') return;
	v[c][d]=1;
	dfs(c+1,d);
	dfs(c,d+1);
}
void bfs(int a,int b){
	if(a>n||b>n||vis[a][b]==1||v[a][b]==1)return;
	vis[a][b]=1;
	if(k[a][b]=='0') {
		bfs(a,b+1);
		bfs(a+1,b);
	}
	else{
		ans++;
		dfs(a,b);	
	} 
}
void run(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>k[i][j];
	bfs(0,0);	
	cout<<ans;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	run();
	return 0;
}
/*样例:4 10
0234500067
1034560500
2045600671
0000000089*/

我觉得我思路是对的,但是样例输出是1.

2024/9/2 08:37
加载中...