求调题目:
(本人蒟蒻,用dfs做的,但不知道哪错了,望大佬勿喷)
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
vector<vector<int> > a;
vector<int> b;
vector<bool> d;
vector<vector<bool> >c;
int cnt;
int n,m,x;
void dfs(int x,int y){
bool b=false;
if(x=a.size()-1){
cnt++;
return;
}
c[x][y]=0;
if(x-1>=0&&a[x-1][y]<a[x][y]) dfs(x-1,y),b=true;
if(x+1<n&&a[x+1][y]<a[x][y]) dfs(x+1,y),b=true;
if(y+1<m&&a[x][y+1]<a[x][y]) dfs(x,y+1),b=true;
if(y-1>=0&&a[x][y-1]<a[x][y]) dfs(x,y-1),b=true;
if(!b) return;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;i<=m;j++){
cin>>x;
b.push_back(x);
d.push_back(true);
}
a.push_back(b);
c.push_back(d);
b.clear();
d.clear();
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
dfs(i,j);
}
}
cout<<cnt;
return 0;
}
昨天发过帖,但各位的做法实在没学过不太会,希望这次有人帮我
谢!