博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4778 DP+博弈
阅读量:5111 次
发布时间:2019-06-13

本文共 705 字,大约阅读时间需要 2 分钟。

我们用dfs(state)来表示state状态时,先手-后手的最优值
我们先来看一个简单模型:
假设获得分数后“没有”再来一次的机会,那么A和B肯定是轮流取
则结果就是dp[state]=max(取i的价值-dp[state^(1<<i)]),其中stase&(1<<i)=0
但是,如果获得分数后有奖励,情况就变了
如果在state这个状态取i可以获得分数,就相应获得再来的机会,
那么dp[state^(1<<i)]的价值还是会被在状态state选i的人得到,于是方程变了
dp[state]=max(取i得x分数+dp[state^(1<<i)],取i没得分的情况(就是上面那种情况)),其中state&(1<<i)=0
#include
#include
#include
using namespace std;#define oo (1<<28)struct CNT{ int col[10];};CNT cnt[22];int dp[1<<22];int B,G,S;int dfs(int state,int *b1){ int b2[10]; int ans,res; int i,j; if(dp[state]!=-oo)return dp[state]; ans=-oo; for(i=0;i
View Code

 

转载于:https://www.cnblogs.com/Hungry3/p/3416698.html

你可能感兴趣的文章
Postman-----如何导入和导出
查看>>
面试题17:合并两个排序的链表
查看>>
Jmeter HTTPS接口测试的证书导入
查看>>
air开发中的requestedDisplayResolution 扫盲
查看>>
随机生成30道小学二年级四则远算题目
查看>>
python基础开发环境Pycharm的详细使用方法
查看>>
节点选取
查看>>
Xcode6新建项目没有.pch
查看>>
js 字符串转化成数字
查看>>
duobango-tinySAK,20121214
查看>>
突破自己的知识体系
查看>>
TensorFlowSharp
查看>>
Egret Wing3 FTP使用方法
查看>>
使用PCF8563实现硬件看门狗
查看>>
linux--->curl
查看>>
最短路算法总结
查看>>
Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)
查看>>
padding填充与box-sizing: border-box配合使用
查看>>
简单使用JSON,JavaScript中创建 JSON 对象(一)
查看>>
C#深拷贝 小例子
查看>>