球球大佬们帮忙看看吧!
查看原帖
球球大佬们帮忙看看吧!
739307
All_Failed_OI_Cici楼主2024/7/7 18:09

求调题目:
题目图片 (本人蒟蒻,用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;
}

昨天发过帖,但各位的做法实在没学过不太会,希望这次有人帮我
谢!

2024/7/7 18:09
加载中...