![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动态规划:状态压缩dp
动态规划:状态压缩dp
LSD20164388
如果你过几天就忘了,那么你并没有真正的掌握。
展开
-
HDU 5519 Kykneion asma (2015 ICPC 沈阳 K)状压dp+容斥
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5519题意给你n(<=15000),再给你0~4这五个数字的可用数量a[i](<=30000),你需要用这些数字构造长度为n的序列,不能有前导零,求合法的方案数。分析网上有多种解法,主要如下:①生成函数FFT(窝不会):https://blog.csdn.net/Quack_quack/article/details/50748753?utm_source=blogxgwz4②原创 2020-07-05 20:29:51 · 259 阅读 · 0 评论 -
The 2017 ACM-ICPC Asia Jakarta Regional Contest L - Sacred Scarecrows/UVALive - 8144 (状压dp+容斥)
传送门题目:题意:多组输入,给你n*m(n<=14,m<=1e3)的字符矩阵,只包含 v 和 . 其中v是障碍物。你需要在.上涂色,使得每一行都有格子被涂色,相邻两列必须有一列有格子被涂色。求最终的合法方案总数%1e9+7。思路:一看到这个题意和n的范围,肯定是状压dp。首先,如果直接暴力状压的话,我们需要枚举每一列,这一列的状态,上一列的状态,复杂度将会爆炸。发现对于障碍物,我们直接开一个数组记录这一列合法的位置即可,至于相邻两列必有一列涂色,我们就设dp.原创 2020-06-27 12:57:30 · 554 阅读 · 0 评论 -
CodeCraft-20 (Div. 2) E. Team Building(状压dp)
题目传送门E. Team Buildingtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice, the president of club FCB, wants to build a team f...原创 2020-03-09 17:06:04 · 360 阅读 · 0 评论 -
POJ 3254 Corn Fields (状压dp)
Corn FieldsTime Limit:2000MS Memory Limit:65536K Total Submissions:21643 Accepted:11344 DescriptionFarmer John has purchased a lush new rectangular pasture composed ofMby...原创 2019-04-12 10:44:31 · 163 阅读 · 0 评论 -
POJ 3311 Hie with the Pie(状压dp)
Hie with the PieTime Limit:2000MS Memory Limit:65536K Total Submissions:11079 Accepted:5880 DescriptionThe Pizazz Pizzeria prides itself in delivering pizzas to its custome...原创 2019-04-12 10:49:08 · 252 阅读 · 0 评论 -
ZOJ 3755 Mines(状压dp)
MinesTime Limit:2 Seconds Memory Limit:65536 KBAs a small-game fan, Flandre loves playing the Mine-sweeping very much. He spends 23 hours playing the lowest level of Mine-sweeping every day...原创 2019-04-12 11:12:12 · 197 阅读 · 0 评论 -
HDU 4539 郑厂长系列故事——排兵布阵(状压dp)
郑厂长系列故事——排兵布阵Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3671Accepted Submission(s): 1261Problem Description 郑厂长不是正厂长 也不是副厂...原创 2019-04-13 10:00:49 · 310 阅读 · 0 评论 -
HDU 3811 Permutation(状态压缩+记忆化搜索)
PermutationTime Limit: 6000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 559Accepted Submission(s): 259Problem DescriptionIn combinatorics a perm...原创 2019-04-13 10:06:16 · 304 阅读 · 0 评论 -
HDU 3001 Travelling(状压dp)
TravellingTime Limit: 6000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11033Accepted Submission(s): 3484Problem DescriptionAfter coding so many ...原创 2019-04-13 10:11:27 · 192 阅读 · 0 评论 -
POJ 1038 Bugs Integrated, Inc.(状压dp)
Bugs Integrated, Inc.Time Limit:15000MS Memory Limit:30000K Total Submissions:10944 Accepted:4234 Case Time Limit:5000MS DescriptionBugs Integrated, Inc. is a major manu...原创 2019-04-11 20:29:53 · 265 阅读 · 0 评论 -
2019年4月10日训练日记
数位dp小结:1、问题特点①一般来说是求某个区间内的符合与每一数位有关的性质的数个个数②数据范围在1e9以上,即区间很大③求区间内第几个①条件的数,通常是再套个二分2、感悟总结①实际上是一种特殊的记忆化搜索,记忆的状态与每一数位有关②根据题目特点将数拆成k进制形式,通常下界为0(如果不是下界就再开一个数组表示下界),ans(l,r)=ans(r)-ans(l-1)③...原创 2019-04-10 22:38:00 · 418 阅读 · 0 评论 -
HDU 6006 Engineer Assignment(状压dp)
Engineer AssignmentTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1164 Accepted Submission(s): 397 Problem DescriptionIn Google, the...原创 2018-10-28 20:50:33 · 209 阅读 · 0 评论 -
zoj 2563 Long Dominoes (状态压缩dp)
这道题和上一道题特别相似,传送门题意:给你若干个1*3的木块,要放满n*m的棋盘,求有多少种放法。思路:状态压缩dp,在上一道题的基础上再再增加一维状态表示对下两行的影响。这里需要注意,避免枚举当前情况影响到本次的另一种情况,所以直接加一个参数表示当前状态,空间压得比较紧,从1到n输入会MLE。AC代码:#include#include#include#include原创 2017-12-01 12:54:24 · 230 阅读 · 0 评论 -
poj 1185 炮兵阵地(状态压缩dp)
这道题是比较经典(正经)的状压dp。不过预处理的东西还是比较多的。题意:中文题就不用说了吧。。。思路:状态压缩dp。预处理出每一行符合要求的状态,山地就默认为已经放了部队(但是不影响周围放部队)。用sum数组保存合法状态下能放多少部队,即该状态二进制1的数量。预处理第一行的状态,然后直接for枚举每一个合法状态和上一行、上上行的状态,注意判断状态是否合法(这一行这个位置放了,上一行、上原创 2017-12-01 17:22:32 · 217 阅读 · 0 评论 -
hdu 4628 Pieces (状态压缩dp)
题意:给你几个字符串,你每次删除的字母要按顺序组成一个回文串。求最少几次就可以把它删完。思路:状态压缩dp。写个函数判断一个状态含有的1是否按顺序对应字符串的位置的字母是一个回文串。预处理所有是回文串的状态,否则会TLE。然后直接枚举删之前的状态和删完之后的状态,判断删的是不是回文串。第一次用异或^,具体见代码注释,应该不难理解。AC代码:#include#include#原创 2017-12-01 17:40:50 · 255 阅读 · 0 评论 -
zoj 3502 Contest (状态压缩dp)
这道题一看hint挺吓人,但是其实就是求解出各题AC概率的和的最大值。刚开始被hint给骗了。题意:有n道题目需要AC,顺序不一定,每一题AC的概率和之前做过的题目有关,给出一张概率表。输出一个字典排序最小的做题的顺序。思路:状态压缩dp,枚举状态和做题顺序,参考了一下别人的代码,学习了精度控制,没想到string可以这样用,自己刚开始用char写了半天没写出来。注意string长度为原创 2017-12-01 18:04:41 · 252 阅读 · 0 评论 -
2017年12月10日训练总结
这次训练总结是12月8日到12月10日。状压DP专题今天就结束了。目前是22/26,今晚还准备把其中一道AC自动机+状压DP的题目做出来(看的资料里有这道题),这道题的思路十分巧妙,把五维数组巧妙地压缩成了二维,是另一种压缩状态的方法。具体的等做出来再说吧。。。总结一下状压DP:刚开始以为就是利用二进制压缩状态,01表示有无,后来发现它其实是一种方法,二进制压缩只属于其中的一种。不过二原创 2017-12-10 21:50:22 · 258 阅读 · 0 评论 -
hdu 4336 Card Collector (状压dp+期望dp)
题意:有n种卡片,你每买一包零食都有可能获得其中的一种卡片或者没获得卡片。问要集齐这n种卡片,需要买的零食包数的期望数是多少。思路:状压dp+期望dp。因为最多有20种卡片,所以可以通过状态压缩表示获没获得该种卡片。0表示没有,1表示有,dp[i]表示状态i所需要买的零食期望数。最终集齐所有卡片的期望肯定是0,因为不需要再继续买了,因此dp[(1可以发现,如果买的一包零食中没有卡片(概率为原创 2017-12-03 09:53:16 · 309 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge(状压dp)
Dlsj is competing in a contest with n (0 < n \le 20)n(0<n≤20) problems. And he knows the answer of all of these problems.However, he can submit ii-th problem if and only if he has submitted (a...原创 2018-09-02 10:24:31 · 449 阅读 · 2 评论 -
2015年ACM/ICPC合肥赛区 D题(状压dp)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5266题意:给你一个n*n(n<=1000)的网格,初始第一行每一列有一只青蛙。有n个膜,第个膜覆盖第l[i]列到第r[i]列。...原创 2018-10-01 11:39:07 · 344 阅读 · 0 评论 -
poj 2411 Mondriaan's Dream (状态压缩dp)
题意:给一个n*m(1思路:状态压缩dp。0表示放,1表示不放。第i行状态只与第i-1行有关,因此用dp[i][state]表示第i行状态为state的放法总数。直接枚举每一行的放法和对下一行的影响,最后dp[n+1][0]就是答案。(想想是不是)注意要用long long。AC代码:#include#include#include#include#include#原创 2017-11-30 22:11:14 · 276 阅读 · 0 评论