也是基于状压dp的一种。最经典的问题莫过于棋盘覆盖了,例如用1*2orL型骨牌覆盖N*M棋盘得方案个数。一般M不会太大。 例如这一道,由于形状特殊,轮廓线长度为M+1才可,递推时只要满足轮廓线前面的格子都是满的且当前放置方案合法即可。 有四种不同放置方法, 黑色部分为当前枚举的位置(i,j),相当于 ...
分类:
其他好文 时间:
2020-01-09 20:42:14
阅读次数:
93
集中做完了插头$dp$ 写一下题解。 一开始学的时候还是挺蒙的。 不过后来站在轮廓线$dp$的角度上来看就简单多了。 其实就是一种联通性$dp$,只不过情况比较多而已了。 本来转移方式有两种。逐行和逐格转移。 不过逐行转移因为分类太多所以被舍弃了。 一般的插头$dp$采用逐格转移。 插头表示已经进入 ...
分类:
其他好文 时间:
2019-12-08 10:44:02
阅读次数:
83
题目链接: "http://acm.hdu.edu.cn/showproblem.php?pid=4804" 题目大意 给你一个 $n \times m$ 的矩形区域。你需要用 $1 \times 1$ 和 $1 \times 2$ 的砖块铺满这个区域,且满足如下要求: 1. 所有的砖块可以竖着放或 ...
分类:
其他好文 时间:
2019-11-30 13:22:36
阅读次数:
107
题目链接: "http://poj.org/problem?id=2411" 题目大意 给你一个 $n \times m (1 \le n,m \le 11)$ 的矩阵,你需要用若干 $1 \times 2$ 的砖块铺满这个矩阵。 要求不能有砖块重叠,并且矩阵中的每个各自都需要铺满。 比如下图中描述 ...
分类:
其他好文 时间:
2019-11-29 23:56:35
阅读次数:
176
"原题链接" 题目大意 $n\times n$的带权方阵,选一个权值最大的连通块 Solution 一眼连通性DP,然后就没了 转移很好想的啦,简单讨论一下就行了 有一个坑点,就是不能一个格子都不选,特判一下 注释还算详细QwQ ...
分类:
其他好文 时间:
2019-05-17 13:52:29
阅读次数:
124
一道好水的题...还是写篇博客吧...(我以为轮廓线DP入门要做两三个题,结果。。) "题目链接" 题意:求用$1 2$的矩形完全覆盖$n m$的棋盘的方案数。 轮廓线DP入门。 另外可以DFS预处理哪些状态能转移到哪些状态,就不用每次$2^m$枚举了。反正复杂度$O(nm2^m)$。 一个代码看了 ...
分类:
其他好文 时间:
2019-01-02 23:30:55
阅读次数:
252
设f[i][j][s]为轮廓线推到格子(i,j),状态为s的方案数 括号表示一段线的左端和右端,表示成左括号和右括号,状压的时候用1和2表示,0表示已经闭合 下面的蓝线是黄色格子的轮廓线,dp转移要把它转到橙色轮廓线,设已经在状压的s中取到两条边的状态记为b1,b2 然后分很多情况讨论: (i,j) ...
分类:
其他好文 时间:
2018-12-14 10:19:34
阅读次数:
209
"LINK" 题目大意 有一个 n 行 m 列的格点图,你需要给每个点上染上 k 种颜色中的一种,要求没有两个相邻点颜色相同。给定第一行与最后一行的染色,试求总染色方案数。 思路 暴力预处理状态暴力转移可以得到80分的高分 这个时候司来了一句: 不要按行转移,按块转移就A了 于是改改改写了一个轮廓线 ...
分类:
其他好文 时间:
2018-11-05 10:11:15
阅读次数:
386
题意:3 * N的格子 有一些点是坏的 用1X1和1X2的砖铺有多少种方法 题解:重新学了下轮廓线 写的很舒服 #include <bits/stdc++.h> using namespace std; typedef long long ll; int n, m; int vis[30][5]; ...
分类:
其他好文 时间:
2018-10-06 10:45:27
阅读次数:
180
这道题就是一道肥!肠!裸!的!轮廓线dp 然后因为细节太多了还因为有一个sbsbsb编译错误 就是不准我函数名字取count...我恨 我永远讨厌轮廓线dp 代码 这道题挺难的 是一道中国剩余定理的题目 本来的公式还是比较好推出来的 先将终点的坐标变为正数 考虑要走到终点 向左向右向上向下的步数相互 ...
分类:
其他好文 时间:
2018-10-05 18:57:56
阅读次数:
187