题意:有n颗石子 两个人轮流拿 如果上一个人拿了x颗 这个人就可以拿x或x+1颗

   问先手能获得与后手的价值差最大是多少

题解:看起来是博弈 其实是DP

   dp[i][j][0/1]表示当前该0/1拿 拿到第i颗上一个人拿了j个 转移就很裸了

   因为当前有两种操作拿x个和拿x+1个 要知道哪一个操作更好 需要知道后面的状态 所以就倒着DP

   因为爆内存就滚动了  对2^k取% = & 2^k - 1 感觉这样滚动会少个常数

#include <bits/stdc++.h>
using namespace std; int q[];
int sum[];
int dp[][][]; int main()
{
int T;
scanf("%d", &T);
while(T--)
{
sum[] = ;
int n; scanf("%d", &n);
for(int i = ; i <= n; i++) scanf("%d", &q[i]), sum[i] = sum[i - ] + q[i]; memset(dp, , sizeof(dp));
for(int i = n; i >= ; i--)
{
for(int j = ; j <= ; j++)
{
if(i + j == n + )
{
dp[i & ][j][] = sum[n] - sum[i - ];
dp[i & ][j][] = sum[i - ] - sum[n];
break;
} dp[i & ][j][] = max(dp[(i + j) & ][j][], dp[(i + j + ) & ][j + ][] + q[i + j]) + sum[i + j - ] - sum[i - ];
dp[i & ][j][] = min(dp[(i + j) & ][j][], dp[(i + j + ) & ][j + ][] - q[i + j]) - sum[i + j - ] + sum[i - ];
}
}
printf("%d\n", dp[][][]);
}
return ;
}

HDU6199 gems gems gems (DP)的更多相关文章

  1. 创建私有 Gems 源

    1.安装依赖 yum install gem -y gem install builder   2.安装.配置nginx的文件列表 添加/etc/nginx/default.d/mirrors.con ...

  2. hdu6199 gems gems gems dp+博弈

    /** 2017 ACM/ICPC Asia Regional Shenyang Online 解题报告 题目:hdu6199 gems gems gems 链接:http://acm.hdu.edu ...

  3. hdu 4778 Gems Fight! 博弈+状态dp+搜索

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4102743.html 题目链接:hdu 4778 Gems Fight! 博弈+状态dp+搜 ...

  4. hdu 6199 沈阳网络赛---gems gems gems(DP)

    题目链接 Problem Description Now there are n gems, each of which has its own value. Alice and Bob play a ...

  5. hdu 4778 Gems Fight! 状态压缩DP

    Gems Fight! Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 327680/327680 K (Java/Others)T ...

  6. hdu 6199 gems gems gems dp

    gems gems gems Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) P ...

  7. HDU 6199gems gems gems (DP)

    gems gems gems Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. hdu 6169 gems gems gems【DP】

    题目链接:hdu 6169 gems gems gems Now there are n gems, each of which has its own value. Alice and Bob pl ...

  9. Hdu 4778 Gems Fight! (状态压缩 + DP)

    题目链接: Hdu 4778 Gems Fight! 题目描述: 就是有G种颜色,B个背包,每个背包有n个宝石,颜色分别为c1,c2............两个人轮流取背包放到公共容器里面,容器里面有 ...

随机推荐

  1. 设置socket IP_TOS选项 (转载)

    转自:http://zhangjunxin520.blog.163.com/blog/static/305037032011721102857609/ 在IP头中,有一Type-of-Service字 ...

  2. ORACLE PL/SQL 实例精解之第三章 PL/SQL中的SQL

    3.1 在PL/SQL中使用DML 在PL/SQL语块中,两种变量赋值a. := 初始化.b. select into语法,PL/SQL语块的声明部分被声明的变量,后期可以使用选择语句进行赋值. 3. ...

  3. CoreBluetooth Central模式 Swift版

    也是醉了,CB这个API到现在也没有Swift的文档.最新的文档还是3年前还是4年前的OC版的,被雷的外焦里嫩的.自己一点一点写成Swift还各种报错,最坑的是这些错误压根找不到解决方案.索性自己做个 ...

  4. bzoj 2946: [Poi2000]公共串【SAM】

    对第一个串建SAM,把剩下的串在上面跑,每次跑一个串的时候在SAM的端点上记录匹配到这的最大长度,然后对这些串跑的结果取min,然后从这些节点的min中取max就是答案 注意在一个点更新后它的祖先也会 ...

  5. 用纯XMLHttpRequest实现AJAX

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  6. 本周学习总结(ng-zorro/MDN索引/读书笔记)

    按钮 <button ng-button nzType="primary">Primary</button> nzType="" pri ...

  7. Java | 基础归纳 | java时间格式处理总结

    https://www.cnblogs.com/edwardlauxh/archive/2010/03/21/1918615.html https://blog.csdn.net/xsj_blog/a ...

  8. _bzoj1257 [CQOI2007]余数之和sum【小技巧】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1257 最近刚做了一道莫比乌斯的题,需要用到这种方法. 应该让k / i相等的一连串k % i ...

  9. 莫比乌斯函数 && HDU-1695

    莫比乌斯函数定义: $$\mu(d)=\begin{cases}1 &\text{d = 1}\\(-1)^r &\text{$d=p_1p_2...p_r,其中p_i为不同的素数$} ...

  10. BestCoder Round #54 (div.2) 1003 Geometric Progression

    题目传送门 题意:判断是否是等比数列 分析:高精度 + 条件:a[i] * a[i+2] == a[i+1] * a[i+1].特殊情况:0 0 0 0 0是Yes的,1 2 0 9 2是No的 代码 ...