随笔分类 -  DP——状态压缩

摘要:1 // 状压DP uvalive 6560 2 // 题意:相邻格子之间可以合并,合并后的格子的值是之前两个格子的乘积,没有合并的为0,求最大价值 3 // 思路: 4 // dp[i][j]:第i行j状态下的值 5 // j:0表示不合并,1表示向下合并 6 // 一开始输入要修改一下,然后滚动数组优化 7 8 #include 9 #include 10 #incl... 阅读全文
posted @ 2016-09-16 19:41 yyblues 阅读(219) 评论(0) 推荐(0)
摘要:1 多校7 HDU5816 Hearthstone 状压DP+全排列 2 题意:boss的PH为p,n张A牌,m张B牌。抽取一张牌,能胜利的概率是多少? 3 如果抽到的是A牌,当剩余牌的数目不少于2张,再从剩余牌里抽两张,否则全部拿完。 4 每次拿到一张B牌,对boss伤害B[i]的值 5 思路:dp[i]表示状态为i时的方案数 6 先处理出所有状态下的方案,再枚举每种状... 阅读全文
posted @ 2016-08-12 13:36 yyblues 阅读(301) 评论(0) 推荐(0)
摘要:题意: n个数,长度为k的缓存,每次询问,每个数以pi的概率被选,如果不在缓存区则加入,如果缓存区满了,则第一个进缓存的出来,问10^100次询问以后每个数在缓存的概率 思路: 状压DP,看了hzwer的代码 f[x]表示当前状态为x的概率 枚举不在缓存区的数:f[t]+=f[x]*(p[i]/to 阅读全文
posted @ 2016-07-24 19:03 yyblues 阅读(469) 评论(0) 推荐(0)
摘要:题意:给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多少种放法。 思路: DP[i][j]=sum(dp[i-1][k]); i表示当前这一行,状态为j有多少种方案 首先,i行能放牛的状态由前一行i-1决定。所以我们只要知道前一行的状态 阅读全文
posted @ 2016-05-25 17:56 yyblues 阅读(156) 评论(0) 推荐(0)