hdu 4826

来源:互联网 发布:知天下图片野战 编辑:程序博客网 时间:2024/05/21 09:18
#include <cstdio>#include <memory.h>const int N=110, inf=1044266559;int dp[N][N][2], map[N][N];int n,m,ans;int max(int a, int b){    return a>b?a:b;}void solve(){    int i,j,tmp;    memset(dp,-0x3F,sizeof(dp));    dp[1][1][0]=map[1][1];    for(i=2;i<=n;i++)        dp[i][1][0]=dp[i-1][1][0]+map[i][1];    for(j=2;j<=m;j++)    {        for(i=1;i<=n;i++){            tmp=max(dp[i][j-1][0],dp[i][j-1][1]);            dp[i][j][0]=max(tmp,dp[i-1][j][0])+map[i][j];        }        for(i=n;i>=1;i--){            tmp=max(dp[i][j-1][0],dp[i][j-1][1]);            dp[i][j][1]=max(tmp,dp[i+1][j][1])+map[i][j];        }    }    ans=max(dp[1][m][0],dp[1][m][1]);}int main(){    // freopen("in","r",stdin);    // freopen("out","w",stdout);    int t,i,r,j;    scanf("%d",&t);    for(i=1;i<=t;i++)    {        scanf("%d%d",&n,&m);        for(r=1;r<=n;r++)            for(j=1;j<=m;j++) scanf("%d",&map[r][j]);        solve();        printf("Case #%d:\n%d\n",i,ans);    }    return 0;}

0 0
原创粉丝点击