一片红杏出墙来
查看原帖
一片红杏出墙来
1133254
wangjingxi_楼主2024/7/30 08:54
#include<bits/stdc++.h>
using namespace std;
int a[50][50],b[50][50],n,m,ans=0;
int find(int i,int j,int z){
    if(i==n && j==m){
        return 0;
    }
    z+=a[i][j];
    ans+=a[i][j];
    b[i][j]=0;
    return max(find(i+1,j,z),find(i,j+1,z));
}
int find2(int i,int j,int z){
    if(i==1 && j==1){
        return 0;
    }
    else if(b[i][j]==0){
        return 0;
    }
    z+=a[i][j];
    ans+=a[i][j];
    return max(find2(i-1,j,z),find2(i,j-1,z));
}
int main(){
    for(int i=1;i<=50;i++){
        for(int j=1;j<=50;j++){
            b[i][j]=-1;
        }
    }
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];  
        }
    }
    find(n,m,0);
    find2(1,1,0);
    cout<<ans;
}

悬赏关注

2024/7/30 08:54
加载中...