状压DP
cervoliu
这个作者很懒,什么都没留下…
展开
-
JZOJ 1769 Islands and Bridges
前言此题出现在2016.1.24日的比赛中。因为只有一个点,所以所有人都爆0。我也在这题磕了一个多小时。事实证明这种题目十分不人性,我的做法十分不明智,比赛选择打这种题一定要1000000000000%保证AC再开打。题目描述给定一些岛屿和一些连接岛屿的桥梁,大家都知道汉密尔顿路是访问每个岛屿一次的路线,在我们这个地图中,每个岛屿有个正整数的权值,表示这个岛屿的观赏价值。假设一共有N(N<=13)个原创 2016-01-24 21:53:37 · 603 阅读 · 0 评论 -
【BZOJ 3060】【POI2012】Tour de Byteotia/【JZOJ 5442】 荒诞
Description有一个n个点,m条边的无向图,选择第i个点的代价为ci 特别地,这张图中的任意两点间不存在节点数超过10的简单路径。 要求选择一些点,使得最后每个点要么自己被选,要么直接相连中的点至少有一个被选,且使得代价和最小 对于100%的测试点,满足1<=n<=2*10^4,0<=m<=2.5*10^4,0<=ci<=10^4Analysis这是一道把npc问题带上特殊性质,从而使原创 2017-11-02 16:01:01 · 296 阅读 · 0 评论 -
【JZOJ 5464】 乘积
Description选择不超过K个N以内的正整数乘起来,使得乘积是一个无平方因子数,有多少种取法?(每个数只能取一次) 无平方因子数x满足μ(x)!=0\mu(x)!=0 对于70%的数据:N≤30; 对于100%的数据:1≤T≤5;1≤K≤N≤500。70%这档很简单,直接用f[i][j][s]f[i][j][s]表示选到第ii个数,共选了jj个,质因子出现二进制状态为ss的方案数100%原创 2017-11-09 16:50:48 · 410 阅读 · 0 评论 -
【Typical】几道题的极简主义题解
JZOJ 5391ρ有一个二分连通无向图,X 方点、Y 方点均为n个(编号为1 ~ n)。 这个二分图比较特殊,一个Y 方点的度为2,一条黑色边,一条白色边。。 所有黑色边权值均为a ,所有白色边权值均为b 。 选择一个X 方点,代价为连接的所有边的权值之和。 激活一个Y 方点,需要选择至少一个与之相邻的X 方点。 现在,ρ想激活每个Y 方点,他想知道最小总代价Key:将Y方点所连接的两个原创 2017-10-02 16:11:11 · 461 阅读 · 0 评论 -
【GDSOI2017】 逃亡
Description一棵树有N个点,每个点有两个属性a,b,a已知,b未知一个点u,会对它子树内的任意一点v发动a[u]次战争,当且仅当b[u]>b[v]0<=bi<=m,对于j=0~k,求有多少种方案,使得发动的战争次数恰好为j0 < n ≤ 14, k ≤ 20, 0 ≤ m ≤ 100000000, 0 ≤ ai, bi ≤ m Analysis看到这种数据范围很容易想到状压 首先就可以发原创 2017-06-11 12:42:56 · 520 阅读 · 0 评论 -
斯坦纳树
Model有N个点,其中M个为黑点。点与点之间有边,边权已知。要求将所有黑点连通(可能同时连通一些白点),且边权和最小。 这是经典的NPC问题,可以用状态压缩DP解决 显然最后连通的是树状结构 设f[s][i]f[s][i]表示树根为i,连通的黑点集合状态为s 转移即为f[s][i]=f[s′][i]+f[s−s′][i] (s′∈s)f[s][i]=f[s'][i]+f[s-s'][i原创 2017-03-24 20:06:10 · 1173 阅读 · 0 评论 -
【JZOJ 3747】 Problem C
Description基因串是由ACGT4个字母组成的,我们有一个长度为n的基因串S。想要知道长度为m的基因串A中,与S的最长公共子序列分别为0,1,2…..n的串各有几个。输出答案关于10^9 + 7的余数。 100%的数据n <= 10,m <= 1000。Analysis我们知道,LCS的dp方程长这样:f[i][j]=max(f[i][j−1],f[i−1][j],f[i−1][j−1]+原创 2017-04-07 21:22:44 · 561 阅读 · 0 评论 -
【JZOJ 3853】 帮助Bsny
DescriptionBsny的书架乱成一团了,帮他一下吧! 他的书架上一共有n本书,我们定义混乱值是连续相同高度书本的段数。例如,如果书的高度是30,30,31,31,32,那么混乱值为3;30,32,32,31的混乱值也为3。但是31,32,31,32,31的混乱值为5,这实在是太乱了。 Bsny想尽可能减少混乱值,但他有点累了,所以他决定最多取出k本书,再随意将它们放回到书架上。你能帮助原创 2017-01-17 22:20:25 · 549 阅读 · 0 评论 -
【JZOJ 4937】 与运算
Description Analysis因为是与运算,所以很容易想到的套路就是用二进制 可以设f[i]表示当前每一位二进制状态为i,然后状压DP 枚举每个数转移,设cnt[i]表示有多少个数满足and i=i(即i中若某一位为1则数中该位也为1) 那么f[i]=f[j]+i∗(cnt[i]−cnt[j])(i∈j)f[i]=f[j]+i*(cnt[i]-cnt[j])(i\in j) cn原创 2017-01-15 22:11:13 · 468 阅读 · 0 评论 -
【JZOJ 4787】 数格子
Description Analysis又是一道原题== :经典模型,状压DP,1表示该位置与该位置的下面一个位置用一个骨牌覆盖,其余状态为0,自己乱搞来判定转移合法性。 然后用矩阵乘法优化dp即可。 弄一个数组表示第i行所有状态的答案,乘法数组就是合法转移关系。Code#include<cstdio>#include<cstring>#include<algorithm>#defin原创 2016-09-18 19:12:22 · 413 阅读 · 0 评论 -
【JZOJ 4685】 礼物
Description商店里一共有种礼物。夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜悦值不能重复获得)。 每次,店员会按照一定的概率Pi(或者不拿出礼物),将第i种礼物拿出来。季堂每次都会将店员拿出来的礼物买下来。 众所周知,白毛切开都是黑的。所以季堂希望最后夏川的喜悦值尽可能地高。 求夏川最后最大的喜悦值是多少,并求出使夏川得到这个喜悦值,季堂的期望购买次数。 对于100%的原创 2016-08-12 20:49:55 · 583 阅读 · 0 评论 -
【CQOI 2012】【BZOJ 2669】【JZOJ 4700】 Garden
Description Analysis自此题本人在BZOJ上神一般的100%正确率没了!! 好吧,扯远了。 首先,请读者再读一遍题,尤其要注意加粗的字,我就被坑了。 N≤4,M≤7?!N\leq 4,M\leq 7?!,画一画,X的数量最多为8个。 那,我们从小到大填数,再状压一下X被填的状态。 那就有f[i][s]=(∑i∈sf[i−1][s−i])+f[i−1][s]∗当前状态可以原创 2016-08-16 13:01:46 · 484 阅读 · 0 评论 -
JZOJ 1768【NOI2001】炮兵阵地
前言此题出现在2016.1.24日的比赛中。当时最高分是HJY,拿了50分。而我在比赛中因为卡在其他题上所以只水了样例,竟然过了一个点。题目描述 司令部的将军们打算在N*M(N≤100;M≤10)的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮原创 2016-01-24 21:22:51 · 643 阅读 · 0 评论 -
【AGC016 F】 Games on DAG
Description给定一个DAG,1号、2号点上有1个棋子,A,B轮流玩游戏,每轮可以选择将uuu上的棋子通过一条边移动到vvv上,无法移动者输。求这个DAG的所有子图(任意删去边,共2m2m2^m个)中满足先手必胜的数量 N<=15Analysis首先根据博弈论相关知识,可以知道如何判定一个给定的图是否先手必败:只需要判断是否有sg(1)=sg(2)即可 那么只要算...原创 2018-03-02 22:47:51 · 474 阅读 · 0 评论