
轮廓线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 · 440 阅读 · 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,第二行匹配到了jjjstastasta是由于上面一行和当前这行总共有用的位置只有m−c+1m-c+1m−c+1个所以用轮廓线...原创 2019-10-19 00:12:51 · 187 阅读 · 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 · 329 阅读 · 0 评论 -
【BZOJ5248】【九省联考2018】—一双木棋(轮廓线dp)
传送门轮廓线dp入门题考虑我们用0/10/10/1串来表示一个已经选了的点和没选的点之间的轮廓如果从左下到右上比如向上为0,向右为1,那轮廓线就是一个01串我们发现选了一个点实际上只是改变了轮廓方向的顺序比如原来是...000111......000111......000111...画图发现能填一个点当且仅当轮廓线为010101时而且填完之后为101010可以通过和3进行位运算...原创 2019-02-26 00:07:21 · 144 阅读 · 0 评论 -
【Ural1519】— Formula1(轮廓线dp)
传送门看这个大佬的博客吧,讲的很详细:传送门#include<bits/stdc++.h>using namespace std;const int RLEN=1<<20|1;#define ll long long#define gc getcharinline int read(){ char ch=gc(); int res=0,f=1; whil...原创 2019-04-03 21:52:27 · 203 阅读 · 2 评论