zoukankan      html  css  js  c++  java
  • Codeforces Gym101502 J-取数博弈

    还有J题,J题自己并不是,套的板子,大家写的都一样,因为大家都是套板子过的,贴一下代码,等学会了写一篇博客。。。

    J.Boxes Game

    代码:

     1 //J. Boxes Game-取数博弈-不会,套的板子
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstdio>
     5 #include<cstring>
     6 #include<cmath>
     7 using namespace std;
     8 const int maxn=1e3+10;
     9 int nums[maxn];
    10 int dp[maxn][maxn];
    11 int main()
    12 {
    13     int t,n;
    14     scanf("%d",&t);
    15     while(t--){
    16         cin>>n;
    17         int sum=0;
    18         memset(nums,0,sizeof(nums));
    19         memset(dp,0,sizeof(dp));
    20         for(int i=0;i<n;++i)
    21         {
    22             cin>>nums[i];
    23             sum+=nums[i];
    24         }
    25         int len=0;
    26         //分n为奇偶分类讨论下初始情况,len是区间[st,en]的长度-1
    27         if(n%2==1)
    28         {
    29             for(int i=0;i<n;++i)
    30                 dp[i][i]=nums[i];
    31             len = 2; //倒数下一轮的区间长度
    32         }
    33         else
    34         {
    35             for(int i=0;i<n-1;++i)
    36             {
    37                 dp[i][i+1] = max(nums[i],nums[i+1])-min(nums[i],nums[i+1]);
    38             }
    39             len =3;
    40         }
    41         while(len<n)
    42         {
    43             for(int i=0;i+len<n;++i)
    44             {
    45                 dp[i][i+len]=max(min(nums[i]-nums[i+1]+dp[i+2][i+len],nums[i]-nums[i+len]+dp[i+1][i+len-1]),
    46                     min(nums[i+len]-nums[i+len-1]+dp[i][i+len-2],nums[i+len]-nums[i]+dp[i+1][i+len-1]));
    47             }
    48             len+=2;
    49         }
    50         cout<<(sum+dp[0][n-1])/2-(sum-dp[0][n-1])/2<<endl;
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    排列组合
    动态规划-上台阶
    砝码称重3
    砝码称重2
    砝码称重1
    砝码称重
    TestDirector其他
    TestDirector域或工程用户的管理
    TestDirector创建域或工程
    LoadRunner8 安装步骤
  • 原文地址:https://www.cnblogs.com/ZERO-/p/9703326.html
Copyright © 2011-2022 走看看