30分求助!!!
查看原帖
30分求助!!!
1244509
renzhanwen楼主2024/6/25 20:05

https://www.luogu.com.cn/record/163071619

#include<bits/stdc++.h>
using namespace std;
int m,n,a[100][100],sum;
bool vis[100][100];
void f2(int x,int y,int s)
{
    if(x==1&&y==1)
    {
        sum=max(sum,s);
        return;
    }
    if(x>m||y>n||x<1||y<1||vis[x][y]==true)
        return;
    s+=a[x][y];
    vis[x][y]=true;
    f2(x-1,y,s);
    f2(x,y-1,s);
    vis[x][y]=false;
}
void f1(int x,int y,int s)
{
    if(x==m&&y==n)
    {
        f2(m,n,s);
        return;
    }
    if(x>m||y>n||x<1||y<1||vis[x][y]==true)
        return;
    s+=a[x][y];
    vis[x][y]=true;
    f1(x+1,y,s);
    f1(x,y+1,s);
    vis[x][y]=false;
}
int main()
{
    cin>>m>>n;
    for(int i=1;i<=m;i++)
        for(int j=1;j<=n;j++)
            cin>>a[i][j];
    f1(1,1,0);
    cout<<sum;
    return 0;
}
2024/6/25 20:05
加载中...