还有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 }

最新文章

  1. js中的日期控件My97 DatePicker---那些打酱油的日子
  2. POJ3579 Median
  3. hibernate 对应关系级联的意思
  4. 开启VMware Esxi的SSH远程登录
  5. 【BZOJ 1079】[SCOI2008]着色方案
  6. sencha touch mvc
  7. AFNetworking自带的解析图片的方法
  8. noip 2012 疫情控制
  9. Tableau Desktop 10.4.2 的安装和激活
  10. UNIX环境高级编程——信号之kill、raise、killpg、alarm、pause、abort、sleep、usleep、nanosleep和setitimer函数
  11. yii2.0 路由美化以及自定义设置
  12. sql查询当前登陆人所管理的校区下的人员
  13. 2082 : Only choose one
  14. transfer.sh:通过命令行简单的创建文件分享
  15. ros自定义消息的时候报错ImportError: No module named em
  16. Esper学习之十四:Pattern(一)
  17. 利用Teensy进行em410x卡模拟以及暴力破解em410x类门禁系统
  18. DoTween用法教程
  19. Day 34 黏包
  20. 浅谈jQuery构造函数

热门文章

  1. mysql 编程
  2. perl-basic-分支&amp;循环
  3. JAVA基础篇—继承
  4. LeetCode(289)Game of Life
  5. stm32之Cortex系统定时器(SysTick)
  6. 带权并查集:HDU3172-Virtual Friends
  7. Linux学习-Linux 主机上的用户讯息传递
  8. POJ 2763 树链剖分 线段树 Housewife Wind
  9. Python虚拟机框架
  10. Django基于Pycharm开发之一【创建django工程】