P1451,样例没过,不知为什么,QAQ
Code:
#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.