
状压DP
文章平均质量分 51
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 1087 SCOI2005 互不侵犯King 状压DP
题目大意:给定n*n的国际象棋棋盘,在上面放k个国王,要求国王之间互不攻击,求方案数n状压DP,将每一行的方案二进制压成一维,令f[i][j][k]为第i行用去j个国王状态为k的方案数,然后状态转移如下:f[i][j][k]=Σf[i-1][j-digit[k]][l]其中l&k=0,l>>1&k=0,l暴力转移即可记得开long long#include#inc原创 2014-10-13 12:56:51 · 1552 阅读 · 0 评论 -
BZOJ 2669 cqoi2012 局部极小值 状压DP+容斥原理
题目大意:给定一个n∗mn*m的矩阵,标记出其中的局部极小值,要求填入1...n∗m1...n*m,求方案数《多年的心头大恨终于切掉了系列》 考虑将数字从小到大一个一个填进去 由于局部极小值最多88个,我们可以状压DP 令fi,jf_{i,j}表示已经填完了前ii个数,局部极小值的填充状态为jj的方案数 预处理出cntjcnt_j表示填充状态为jj时共有多少位置是可以填充的(包括已填充的局部原创 2015-08-27 15:46:15 · 5188 阅读 · 1 评论 -
BZOJ 3864 Hero meet devil DP套DP
题目大意:给定一个长度为n(n≤15)n(n\leq 15)的基因序列SS,求对于每个i(0≤i≤n)i(0\leq i\leq n)有多少长度为m(m≤1000)m(m\leq1000)的基因串TT满足SS与TT的LCSLCS为ii考虑LCSLCS怎么求 fi,jf_{i,j}表示TT的前ii位和SS的前jj位的LCSLCS 我们发现每一行之和上一行的状态有关那么在这个问题中,我们令fi,jf原创 2015-07-10 09:30:50 · 3049 阅读 · 0 评论 -
BZOJ 4145 AMPPZ2014 The Prices 状压DP
题目大意:给定n个商店和m种物品,你需要每种物品买一个,去第ii个商店的路费是did_i,第ii个商店出售第jj种物品的价格是ci,jc_{i,j},求最小花销 令fi,jf_{i,j}表示当前已经考虑了前ii个商店,购买的状态为jj的最小花销 然后每个商店内跑个背包即可#include <cstdio>#include <cstring>#include <iostream>#inc原创 2015-06-18 14:32:04 · 1965 阅读 · 0 评论 -
BZOJ 3812 主旋律 状压DP+容斥原理
题目大意:给定一张有向图,求这张有向图的生成子图中有多少强连通图正着做不好做,我们考虑容斥原理如果一个图不连通,那么这张图缩点之后一定会形成一个点数>=2的DAG一个DAG中一定会有一些入度为0的点,我们枚举这些点的点集进行容斥具体DP方程和细节见代码 注释写的还是比较详细的我就不多说了= =#include #include #include #include #原创 2015-04-15 14:48:49 · 3328 阅读 · 0 评论 -
BZOJ 3925 Zjoi2015 地震后的幻想乡 期望状压DP
题目大意:给定一张点数不超过10的无向连通图,每条边有一个[0,1]之间的随机权值,求最小生成树上最大边的期望值此生无悔入东方,来世愿生幻想乡OTZ首先既然权值在[0,1]之间均匀分布那么两条边权值相同的概率为0 于是我们只考虑所有边边权都不同的情况如果最小生成树上的最大边为x,那么权值小于x的边一定不能将这个图连通,而权值因此对于一个x,如果我们求出【只有边权小于x的边存在时原创 2015-04-03 19:00:22 · 4008 阅读 · 0 评论 -
BZOJ 1097 POI2007 旅游景点atr SPFA+状压DP
题目大意:给定一张图,要求从第一个点出发,按照某个拓扑序遍历2~k+1的所有节点,然后到达n,求最短路径首先将所有关键点之间的最短路用SPFA求出来 然后状压DP令f[state][p]表示已经走过的点集为state,将要走到p点的最短路记忆化搜索就行了- -标准卡时过- -#include #include #include #include #define M 20原创 2015-01-20 15:11:45 · 1878 阅读 · 0 评论 -
BZOJ 3195 JXOI2012 奇怪的道路 状压DP
题目大意:给定n个点,需要在这n个点之间连m条边,要求每个点的度数为偶数,且任意一条边两端点编号之差不超过k状压DP 令f[i][j][status]表示前i-1个点已经向后连了j条边,此时以i开头的k个点的奇偶性为status的方案数初始状态f[1][0][0]=1首先我们从1开始枚举左端点向右更新枚举开始的状态sta1和更新的状态sta2每次转移需要从第i个点向从第i+1个原创 2015-01-20 18:59:18 · 2030 阅读 · 0 评论 -
BZOJ 1076 SCOI2008 奖励关 期望状压DP
题目大意:给定k次弹出宝物的机会,每次随机弹出n种宝物的机会,如果吃过这种宝物的所有前提宝物就可以吃这种宝物,求最优策略的期望得分看到数据范围果断状压DP- - 不看数据范围害死人- -至于吃还是不吃 这是个问题对于这种最优策略的期望DP 我们一般都是从后往前推枚举每次出现宝物 枚举此时的状态 枚举宝物是哪种如果当前的宝物可以吃 就在吃与不吃的后继状态中选择最大值加到当前状态上原创 2015-02-03 19:47:45 · 1639 阅读 · 0 评论 -
BZOJ 1072 SCOI2007 排列perm 状压DP
题目大意:给定n个数字,求这些数字的全排列中有多少数能被d整除令f[i][j]为状态为i,余数为j的方案数枚举最高位转移小心爆int#include#include#include#includeusing namespace std;int n,d,ans,f[1<<10][1<<10],digit[1<<10],tens[10],cnt[10],factorial[1原创 2014-10-16 08:57:43 · 2167 阅读 · 0 评论 -
BZOJ 2734 HNOI2012 集合选数 状压DP
题目大意:给定n,求集合S={1,2,3,...,n}有多少子集满足对于任意集合中任意两个数x和y,x≠2y并且x≠3y原题解见 http://www.cnblogs.com/Randolph87/p/3677786.html对于n以内任意与6互质的整数x,我们列出一个矩阵x 3x 9x 27x ...2x 6x 18x 54x ...4x 12x 36x 108x ...原创 2014-10-15 20:19:36 · 1450 阅读 · 0 评论 -
BZOJ 1494 NOI2007 生成树计数 状压DP+矩阵乘法
题目大意:给定n(n≤1015)n(n\leq 10^{15})个点,编号差不超过k(k≤5)k(k\leq 5)的点之间有连边,问生成树个数 将kk个点的连通性用最小表示法压成状态,那么最多有5252种状态 计算出每个状态的生成树个数,作为初始行向量AA 对于每种状态考虑新加入一个点并向这kk个点连边,每种连法可以转移到哪些状态,得到转移矩阵BB 那么答案就是A∗Bn[A*B^n[所有点都原创 2015-09-16 19:54:03 · 2363 阅读 · 0 评论