求助
  • 板块灌水区
  • 楼主__owowow__
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/15 17:31
  • 上次更新2024/10/15 17:44:29
查看原帖
求助
1333713
__owowow__楼主2024/10/15 17:31

P7074代码,发现编译错误:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MIN=-1e18;
int n,m;
int a[1005][1005],f[1005][1005][2];
int Max(int a,int b,int c)
{
    return max(max(a,b),c);
}
int dfs(int x,int y,int from)
{
    if(x<=0||y<=0||x>n||y>m) return MIN;
    if(f[x][y][from]!=MIN) return f[x][y][from];
    if(from==0) f[x][y][from]=Max(dfs(x-1,y,1),dfs(x,y-1,1),dfs(x,y,1))+a[x][y];
    else f[x][y][from]=Max(dfs(x-1,y,1),dfs(x,y-1,0),dfs(x,y,1))+a[x][y];
    return f[x][y][from];
}
signed main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>a[i][j];
            f[i][j][0]=f[i][j][1]=MIN;
        }
    }
    f[1][1][0]=f[1][1][1]=a[1][1];
    cout<<dfs(n,m,1)<<endl;
    return 0;
}

2024/10/15 17:31
加载中...