P1006 [NOIP2008 提高组] 传纸条

#include<bits/stdc++.h>
using namespace std;
int a[55][55],f[55][55][55][55],n,m,t;
int main(){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            scanf("%d",&a[i][j]);
        }
    }
    f[1][1][1][1]=1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            for(int p=1;p<=n;p++){
                for(int q=1;q<=m;q++){
                    t=max(max(f[i][j-1][p-1][q],f[i-1][j][p][q-1]),max(f[i][j-1][p][q-1],f[i-1][j][p-1][q]));
                    if(i==p&&j==q)f[i][j][p][q]=t+a[i][j];
                    else f[i][j][p][q]=t+a[i][j]+a[p][q];
                }
            }
        }
    }
    printf("%d",f[n][m][n][m]);
    return 0;
}

 

上一篇:Java小白入门200例55之购物卡使用分配问题


下一篇:21:55:52 【潜水】Q群管家 2021-09-03 21:55:52 @1614591760 本群是Sakurairo 主题的交流群。 出现Bug优先发Issue。 ——来自群管理员(7984