题意:https://www.acwing.com/problem/content/1067/ Tyvj 两周年庆典要到了,Sam 想为 Tyvj 做一个大蛋糕。 蛋糕俯视图是一个 N×M 的矩形,它被划分成 N×M 个边长为 1×1×1 的小正方形区域(可以把蛋糕当成 N 行 M 列的矩阵)。 蛋 ...
分类:
其他好文 时间:
2020-03-16 19:20:45
阅读次数:
76
状态压缩,是一种利用二进制的暴力枚举法. 介绍一下几个二进制运算符,以后都经常用到 与& 1&0 = 0 1&1 = 1 0&0 = 0 或| 1|0 = 1 1|1=1 0|0=0 异或^ 1^0=1 0^0 =0 1^1 = 0 取反~ ~1=0 ~0=1 & 是两边都是1结果才为1 | 只要有 ...
分类:
其他好文 时间:
2020-03-10 21:43:16
阅读次数:
71
最近在学状压dp,记录一下,避免忘记。 1. :$x$ 和 $y$ 是否有同一位都为 $1$; 2. :$x$ 的第 $i$ 位是否为 $1$; 3. :$x$ 是否有相邻两位都是 $1$; 4. :将 $x$ 的第 $i$ 位变为 $1$; 5. :将 $x$ 的最后一个 $1$ 去掉; 6. : ...
分类:
其他好文 时间:
2020-03-04 12:55:06
阅读次数:
66
我们发现字符串的个数不多,就会想到搜索或者是状态压缩 这题如果能将两个合并而且减少长度,那就意味着一个字符串的末尾和一个字符串的开头有相同之处 ,这样我们就可以先预处理一下 我们定义状态为f[i][j]表示在i集合中,当前以j开头,我们定义j开头是为了找最小字典序好找一些 我们知道最小长度可能多种, ...
分类:
其他好文 时间:
2020-03-03 20:33:48
阅读次数:
92
题目:传送门 题意:问存在多少 1 ~ n 的排列满足任意相邻的两个数互质,输出答案取余 mod。 1 <= n <= 28, 1 <= mod <= 30000 思路:很容易想到状压DP, dp[ i ][ j ]其中 i 是最后一个数要填的数,j 是当前使用过的数的状态,每一个二进制位对应一个数 ...
分类:
其他好文 时间:
2020-03-03 11:04:13
阅读次数:
63
首先我们发现,因为可以在任意地方翻转,所以最后的答案就是一个合法子串和他的补集的子集中个数和最大的那个 因此我们先枚举每一个合法状态,记录他的合法个数有几个。 然后我们从头枚举每一个状态,计算状态的子集中的最大个数。 这样我们最后只要枚举状态和补集,就能计算出真正的答案了 #include<iost ...
分类:
其他好文 时间:
2020-03-03 10:55:02
阅读次数:
72
[GDOI2015]推箱子(状压bfs) 题面 题面过长,略 分析 观察到$m \times m =64 $,那么可以把箱子的01状态压到一个 里面 然后对于地图上的每一个点$(x,y)$,预处理出左上角在$(x,y)$,边长为$m$的正方形的01状态。如果这个状态和箱子的状态按位与的结果为0,那么 ...
分类:
其他好文 时间:
2020-03-01 19:44:26
阅读次数:
72
DP 首先先回忆一下dp,dp叫做记忆化搜索,是一种可以把暴力搜索中重复的部分重复利用,从而到达减小复杂度的目的。比如最应该熟悉的背包模型,如果你把选择的过程看成一步一步的,那么在这么多的搜索路径中一定有着很多很多的重复部分,dp就是一种把重复的部分加以利用的方法。相信大家都已经在以前的练习中已经明 ...
分类:
其他好文 时间:
2020-02-29 14:56:16
阅读次数:
88
题意:就是连连看,有两个相同的就能消除,再加上两个特别的规定,一是只能从栈顶开始消除,而是两个相同的元素之间距离不能超过6,询问能否消除序列中所有元素。 思路:数据水,贪心就能过,但严谨的考虑,贪心显然不能解决所有问题。这题虽然序列很长,但是状态并不复杂,可以使用滚动的状压dp,然后考虑使用多少位表 ...
分类:
其他好文 时间:
2020-02-25 23:10:17
阅读次数:
60
题目链接: "P1433 吃奶酪" 我感觉可以改成: 【模板】TSP问题(商旅问题) 了。 爆搜$T$一个点,考虑状压$dp$(~~还是爆搜~~)。 我们用$dp[i][j]$表示现在是$i$状态,站在了$j$点。 那什么是状态呢? 我们用一个零一串表示每一点有无被走过($0$是没走过,$1$是已走 ...
分类:
其他好文 时间:
2020-02-22 09:25:31
阅读次数:
54