题意:有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. mfc实现对话框全屏置顶显示

    一.MFC让对话框窗口始终在最前 方法一:在对话框的属性中,把SystemModal设置为True. 二.全屏显示 在CDialog7::OnInitDialog()中加入: 先取得分辨率, int ...

  2. Java 8的Lambda学习

    参考资料:https://www.dotnetperls.com/lambda-java Lambdas用于创建函数对象.通过它们,我们可以在其它方法内部指定方法,甚至可以把方法做为参数传递给其它方法 ...

  3. MySQL命令行参数

    一,mysql命令行参数 Usage: mysql [OPTIONS] [database]   //命令方式 -?, --help          //显示帮助信息并退出 -I, --help   ...

  4. [技术分享]利用MSBuild制作msf免杀的后门

    文章github上有公开现成的shellcode,这就是shellcode 我这次选择了32位的那个版本来进行演示 需要改写的是shellcode那部分: 选择CobaltStrike:payload ...

  5. hdoj2571【DP基础】

    题意:中文题/ 思路:DP的思想要理解,就是从上一个最优状态使被传到的状态也是最优状态.因为很久没有打DP,所以连简单地这样的都wa了6次:(QAQ废话不多说). 题目要求是从(x,y)到(x,y+1 ...

  6. android的logcat的message有字符长度的限制,超过将直接截断

    http://blog.csdn.net/qidizi/article/details/47291803 今天想在logcat中输出足够多的调试信息时,发现从logcat中返回的信息中明显少了后面一节 ...

  7. 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  8. 两边是线 ,中间是文字 的CSS写法 而且还是自适应的

  9. h5-18-文件操作-兼容判断

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. word2vec的Java源码【转】

    一.核心代码 word2vec.java package com.ansj.vec; import java.io.*; import java.lang.reflect.Array; import ...