lightoj 1031 区间dp
生活随笔
收集整理的這篇文章主要介紹了
lightoj 1031 区间dp
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接:?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(luò)比后手多的分差。 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\n",cas,dp[1][N]);} } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/acmdeweilai/p/3287869.html
總結(jié)
以上是生活随笔為你收集整理的lightoj 1031 区间dp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大二下周总结(三)
- 下一篇: hdu1355The Peanuts