
状压DP
文章平均质量分 51
notmuch
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
蓝桥杯系列 - 2019国赛 - 矩阵计数
矩阵的每个位置只有两种可能的状态,加上 N, M 的范围这么小,很容易想到要用到二进制,往这个思路想下去就想到了状压 DP。 大致思路如下: 输入 N, M,矩阵每行的状态就有 numState = 2M 个。 假设 1 代表题中的 ‘X’,0 代表题中的 ‘O’。可以先从 [0, numState - 1] 里面挑出符合条件的数存进一个数组 stateAllowed,所谓“符合条件”就是这些数的二进制表示没有连续 3 个 1,例如 8 = (1000)2 是符合条件的,而 7 = (0111)2 和 1原创 2021-05-09 10:28:04 · 1485 阅读 · 1 评论 -
[SCOI2005]互不侵犯(状压DP)
题意:给定一个N * N的棋盘,放置K个国王,使他们互相攻击不到对方,共有多少种方案。国王可以攻击上下左右,左上左下,右上右下附近的一格,共8格。 数据范围:1<=N<=9, 0<=K<=N * N. 因为N的范围很小,而且每一行对应的一个方案可以用一个二进制数表示,所以容易想到用状压DP。又因题目有限制要用多少个国王,所以我们需要记录一下国王的个数。 于是,我们可以定义D...原创 2019-08-14 11:30:17 · 259 阅读 · 0 评论 -
CF580D,Kefa and Dishes(状压DP)
题意:有n道菜,每道菜一个权值,有k个条件,表示第y道菜在第x道后马上吃有c的附加值。求从中吃m道菜的最大权值。 本题详解可看: https://www.cnblogs.com/real-l/p/8597827.html 作为还在入门状压DP的萌新,这里就分析一下怎么推出DP状态。 首先,n的范围比较小,且每道菜有个吃与不吃操作,可用二进制1,0表示,故不难相处可用状压DP;其次,n道菜就有1&l...原创 2019-08-16 11:22:19 · 179 阅读 · 0 评论 -
洛谷P1171 售货员的难题(状压DP)
题目描述: 某乡有n个村庄(1<n≤20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0<s<1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。 分析: n很小,而且哪个村去过与没去过都可以用二进制1...原创 2019-08-16 12:23:24 · 454 阅读 · 0 评论 -
POJ3254,Corn Fields(状压DP)
题意:农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以种植作物的(用1标记),其他格子则不能种植(用0标记),并且要求相邻格子不能同时都有种植作物。现在输入数据给出这块地的大小及可否种植的情况,求该农夫有多少种种植方案可以选择(注意:任何格子都不种植也是一种选择,不要忘记考虑!) 状压DP入门题,有个博客讲得很详细: https://www.cnblogs.com/real-l/p...原创 2019-08-13 11:26:39 · 174 阅读 · 0 评论