轮廓线dp
stargazer.
夜を穿つの
展开
-
【洛谷 P5422】【USACO19OPEN】Compound Escape P(轮廓线dp / 最小表示法)
传送门 首先看数据范围和题就知道是轮廓线dpdpdp 最小表示法压连通性 但是由于脑残 还是wa+tlewa+tlewa+tle了 把每次转移的预处理出来 每次可以直接枚举2k2^k2k横边情况和2k−12^{k-1}2k−1竖边情况转移 #include<bits/stdc++.h> using namespace std; #define cs const #define re r...原创 2020-03-11 19:04:25 · 379 阅读 · 0 评论 -
【LOJ #2017】「SCOI2016」围棋—(轮廓线dp+KMP)
传送门 考虑计算完全没有的情况减去 令f[i][j][sta][k][p]f[i][j][sta][k][p]f[i][j][sta][k][p] 表示到i,ji,ji,j当前这行和上面一行与模式串第一行匹配的状态为stastasta 上一行和第一行模式串匹配到了kkk,第二行匹配到了jjj stastasta是由于上面一行和当前这行总共有用的位置只有m−c+1m-c+1m−c+1个 所以用轮廓线...原创 2019-10-19 00:12:51 · 145 阅读 · 0 评论 -
【Topcoder SRM 671 Div1 Level3】—BearDestroys(轮廓线dp)
传送门 考虑直接压列是不行的 只能压对角线 发现两条对角线的转移只用一直压m+1m+1m+1个状态 然后乱写写就可以了 讨论的情况还是不少 还因为各种傻叉问题调了好久 #include<bits/stdc++.h> using namespace std; const int RLEN=(1<<20)|5; inline char gc(){ static char ib...原创 2019-10-16 14:59:33 · 280 阅读 · 0 评论 -
【BZOJ5248】【九省联考2018】—一双木棋(轮廓线dp)
传送门 轮廓线dp入门题 考虑我们用0/10/10/1串来表示一个已经选了的点和没选的点之间的轮廓 如果从左下到右上 比如向上为0,向右为1,那轮廓线就是一个01串 我们发现选了一个点实际上只是改变了轮廓方向的顺序 比如原来是...000111......000111......000111... 画图发现能填一个点当且仅当轮廓线为010101时 而且填完之后为101010 可以通过和3进行位运算...原创 2019-02-26 00:07:21 · 116 阅读 · 0 评论 -
【Ural1519】— Formula1(轮廓线dp)
传送门 看这个大佬的博客吧,讲的很详细:传送门 #include<bits/stdc++.h> using namespace std; const int RLEN=1<<20|1; #define ll long long #define gc getchar inline int read(){ char ch=gc(); int res=0,f=1; whil...原创 2019-04-03 21:52:27 · 168 阅读 · 2 评论