• lightoj 1031 区间dp


    题目链接: http://lightoj.com/volume_showproblem.php?problem=1031

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    const int maxn = 105;
    
    int dp[maxn][maxn];  //dp[i][j] 表示先手从i到j比后手多的分差。
    int sum[maxn],a[maxn];
    int N;
    
    int main()
    {
       // freopen("E:\acm\input.txt","r",stdin);
        int T;
        cin>>T;
        for(int cas=1;cas<=T;cas++){
            scanf("%d",&N);
            sum[0] = 0;
            memset(dp,-0x3f,sizeof(dp));
            for(int i=1;i<=N;i++){
                int a;
                scanf("%d",&a);
                sum[i] = sum[i-1] + a;
                dp[i][i] = a;
            }
            for(int i=1;i<=N+1;i++) dp[i][i-1] = 0;
            for(int i=N-1;i>=1;i--)
                for(int j=i+1;j<=N;j++){
                    for(int k=i;k<=j;k++){
                        if(k == j){
                            dp[i][j]  = max(dp[i][j],sum[j]-sum[i-1]);   //不能取零个,这是取全部的情况。
                            continue;
                        }
                        dp[i][j] = max(dp[i][j],max(sum[k]-sum[i-1]-dp[k+1][j],sum[j]-sum[k]-dp[i][k]));
                    }
            }
            printf("Case %d: %d
    ",cas,dp[1][N]);
        }
    }
    View Code
  • 相关阅读:
    scrollTop
    ……
    放下
    值得纪念的一天
    php新手上路(六)
    image map
    文字多出用点代替
    js formatter
    感谢,今天刚申请了博客园,
    接口的作用
  • 原文地址:https://www.cnblogs.com/acmdeweilai/p/3287869.html
Copyright © 2020-2023  润新知