
动态规划-概率期望
Endless_Way
这个作者很懒,什么都没留下…
展开
-
BZOJ 1419 Red is good
期望DPf[i][j]表示i张红牌,j张黑牌从 f[i-1][j],f[i][j-1],0 转移过来,注意下界为0要判,因为取成负数肯定不优#include<cstdio> #include<cstring> #include<algorithm> #define N 5005 using namespace std; double f[2][N]; int main() { int n,原创 2016-10-22 09:58:47 · 295 阅读 · 0 评论 -
BZOJ 1076 [SCOI2008]奖励关
显然要记f[i][s]表示做到第k次,此时已有的物品集合为S的期望得分。下文前者指时间靠前的状态,后者指时间靠后的状态。如果正向DP,即f[i-1] -> f[i],会出问题。因为这样意味着第i次的决策可以根据第i次出现的不同物品来改变第i-1次的决策。即我们枚举第i次出现的物品,对i-1的不同s取max,就会后者决定前者。应当反向DP,即f[i+1] -> f[i]。也就是前者根据后者不同情况的不原创 2016-12-22 22:05:01 · 449 阅读 · 0 评论 -
BZOJ 4008 [HNOI2015]亚瑟王
期望DPPoPoQQQ大爷题解很神的DP。如果直接考虑每一轮用掉了什么东西,对下一轮产生了什么影响,那基本是做不出来的,因为这之间的关系很多很复杂。考虑所有轮一起做,记f[i][j]表示做到第i个物品时还有j轮没有选完。那么i此时可以在这j轮中被选,也可以不被选,就可以DP了。这种DP就可以避免物品与物品之间的影响了。#include<cstdio> #include<cstring> #defin原创 2016-12-24 12:18:23 · 397 阅读 · 0 评论 -
SPOJ 4060 A game with probability
概率DP刚开始想简单了233……以为一个石子的时候都主动取,多余一个石子的时候都主动不取……感觉对博弈一无所知正确姿势:记f[i]表示剩i个石子,先手胜概率,g[i],后手胜概率。事实上,有i个石子时的决策只跟f[i-1]和g[i-1]的大小有关。如果前者大,那双方都希望自己在下一轮充当先手,否则希望充当后手。根据这个来DP就行了。事后打表发现取和不取的决策和当前石子的奇偶有关,interestin原创 2017-03-18 12:21:35 · 419 阅读 · 0 评论