![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
状压
ACM败犬
这个作者很懒,什么都没留下…
展开
-
gym 101933 E. Explosion Exploit(概率,记忆化搜索 +剪枝)
题目链接:https://codeforces.com/gym/101933/problem/E 题目大意:有2个玩家 a 和 b,a 有 n 个棋,b 有 m 个棋,a 可以发动闪电,随机命中场上还剩下的棋子,并使得它的生命中减一,当棋子的生命值降为0时就会被抬走,a 一共可以发动 d 次闪电,求 a 能把 b 所有棋子抬走的概率(即使自己的棋子全没了也可以继续发动闪电)。 题解:n,mn,...原创 2019-10-22 18:41:01 · 444 阅读 · 0 评论 -
uva1637:纸牌游戏(记忆化搜索,状压dp , 概率dp , 全概率公式)
题目大意:有36张牌,分成9堆,每堆4张牌。每次可以拿走某两堆顶部的牌,但需要点数相同。如果有多种拿法则等概率的随机的拿。例如,9堆顶部的牌分别为KS,KH,KD,9H,8S,8D,7C,7D,6H,则有5种拿法(KS,KH),(KS,KD).(KH,KD).(8S,8D),(7C,7D),每种拿法的概率均为1/5。如果最后拿完所有牌则游戏成功。按顺序给出每堆牌的四张牌,求成功概率。 解法:设A为...原创 2019-05-03 12:23:09 · 304 阅读 · 0 评论 -
蓝桥杯国赛训练营:迷宫逃生(状压 + BFS)
刷完状压dp特此发一篇博客纪念一下… 这题没什么特别的,与dp无关。总结一下状压的理解:首先状压并没有压缩时间复杂度和空间复杂度,而只是利用计算机二级制的特性和位运算,将本应该多维表示的状态用一维表示出来。回忆二进制法求子集:对于一个有n位整数,每一个二进制位为0表示选,为1表示不选。状压也是利用了这一点。 对于某些dp我们必须枚举一个状态的子集的时候,就可以用二进制法来表示状态,例如n个物品,状...原创 2019-04-08 21:08:26 · 274 阅读 · 0 评论 -
第十届蓝桥杯 I:糖果(状压+背包dp)
【问题描述】 糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种口味编号 1 ∼ M。 小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而 是 K 颗一包整包出售。 幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。 给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。 【输入格式】 第一行包含三个整数 N、...原创 2019-04-08 12:41:54 · 1712 阅读 · 0 评论 -
蓝桥国赛训练营:铺瓷砖(状压dp)
题面:给出一种 1x2的瓷砖和n * m的地板,问铺满整个地板有几种方案?答案对 1e9+7求余。 1 <= min(n,m) <= 10 , 1 <= max(n,m) <= 100; 二维状压dp 思维过程: 首先想到一行怎么铺,可以用1表示竖着,0表示横着。有了表示的方法,根据状压dp,我们可以把一行的状态压缩成一维,令dp[i][j] 表示 第i行,铺的方案为...原创 2019-04-07 11:19:16 · 540 阅读 · 0 评论 -
Codeforce 1185:F. Two Pizzas(暴力 + 状压)
题目大意:有 n 个人 ,每个人有一个喜欢的披萨的口味的集合sis_isi,口味总共只有9种,有m家披萨店,每家店卖的披萨都带有一个口味集合 tit_iti,每家店的披萨都有一个价格 cic_ici。询问,买两块不同店的披萨,满足尽量多的人的前提下最小花费是多少? 题解:暴力,因为口味只有9种,从这入手,可以暴力计算出所有口味集合满足的人数。再暴力预处理出只买一块披萨的情况下,所有口味集合的...原创 2019-08-13 21:53:06 · 171 阅读 · 0 评论 -
HDU 5977:Garden of Eden(点分治 + 状压预处理)
题意:在一棵有n个点的树上,每个点有一个点权,最多有 k 种点权,问 简单路径上点权种类总共为 k 的点对有多少对。 题解:考虑点分治,由于k比较小,用一个state数组记录当前点到分治中心的路径上颜色的种类集合,这个种类集合可以用二进制状压。 每dfs完一棵子树,枚举已经dfs过的子树上的点暴力合并,若两个点的状态合并之后集合大小 = k,则更新答案。这样做是 n2log(n2)n^2log...原创 2019-08-07 18:53:48 · 213 阅读 · 0 评论