
状压dp
huanghongxun
这个作者很懒,什么都没留下…
展开
-
HDU 1693 Eat the Trees 插头DP
求一个棋盘不定量条回路覆盖方案数。是不是插头dp的入门题呢。。对于正在决策的格子有几种情况。1. 障碍 1) 有插头:显然方案数为0。 2) 无插头:方案数不变。2. 平地 1) 有2个插头:当前决策的格子已经有路通过,因此下个状态是无插头。 2) 有1个插头:当前决策的格子有路通过,但不确定向右还是向下,因此下个状态是1个插头。原创 2016-03-02 14:05:02 · 489 阅读 · 0 评论 -
?|USACO 5.4.4|Betsy's Tour|漫游小镇|插头DP
和POJ Tony’s Tour一毛一样。。#include <cstdio>#include <algorithm>#include <map>using namespace std;const int N = 20001, M = 5001;typedef long long ll;typedef map<ll, ll>::iterator mll;const int state[原创 2016-04-23 10:59:24 · 1460 阅读 · 0 评论 -
URAL 1519 Formula 1 插头DP
开始刷cdq ppt的题。。 不过毕竟插头DP写起来很长,所以为了写短一点我就没有在意运行时间了。。学到了位运算清零。。#include <cstdio>#include <algorithm>#include <map>#define rep(i,j,k) for(int i=j;i<k;++i)using namespace std;const int N = 20001, M =原创 2016-03-04 11:17:57 · 371 阅读 · 0 评论 -
BZOJ 1087 SCOI 互不侵犯 状态DP
N的范围很小,一行可行的状态数也就90左右吧。 于是DP就好了。 由于预处理出了一行的所有可行状态,所以按行DP。 令f[i][j][k]f[i][j][k]表示到了第i行,放了j个棋子,当前行状态为k的方案数。 那么从上下两行兼容的状态转移过来就可以了。 因为王范围是3*3,所以简单位运算解决。#include <cstdio>#define FOR(i,j,k) for(i=j;i<原创 2016-03-06 23:30:42 · 368 阅读 · 0 评论 -
BZOJ 1948 CEOI 2006 Connect 状态压缩动态规划
BZOJ题面好像不全。 什么POI,CEOI吧。。还是去看原题比较好,比如 http://www.hsin.hr/ceoi2006/index.php?page=tasks http://www.hsin.hr/ceoi2006/tasks/day2/connect.pdf http://www.hsin.hr/ceoi2006/tasks/day2/connect_test.zip ht原创 2016-03-06 00:02:03 · 826 阅读 · 0 评论 -
BZOJ 2331 SCOI 2011 地板 插头DP
求用L形方块占满有障碍棋盘的方案数。对于每个插头,定义状态有:0 - 无插头1 - 入插头:指向L的拐点的称为入。2 - 出插头:相对地。那么,就可以分情况讨论了。下面以左、上以及下、右的顺序描述插头。均无插头 无和入或入和出(即L的一个端点)均为出(即L的拐点)均有插头 均为出(即L的拐点,合并两插头)其余情况均不合法。只有一个有插头 左为出:延续(下无右原创 2016-03-05 20:54:15 · 546 阅读 · 0 评论 -
POJ 1739 Tony's Tour 插头DP
相对于URAL 1519,本题是限定起终点的哈密尔顿路的个数。发现下面加2行就转化成哈密尔顿回路了。。 于是。。#include <cstdio>#include <algorithm>#include <map>using namespace std;const int N = 20001, M = 5001;typedef long long ll;typedef map<ll,原创 2016-03-04 11:44:27 · 486 阅读 · 0 评论 -
BZOJ 1210 HNOI 2004 邮递员 插头DP
题目有句话是不希望走更长的路,应该就是哈密尔顿回路了?然后总数乘个2? 还要注意n=1或m=1的时候并没有回路的情况。。 我太弱了,COGS上看到有人说76行即可AC,我写了个99行的。。 不过bzoj上排Rank 61。。#include <cstdio>#include <cstring>#include <algorithm>#include <map>using namespa原创 2016-03-04 18:52:47 · 1165 阅读 · 0 评论 -
BZOJ 1187 HNOI 2007 神奇游乐园 插头DP
注意因为有负数所以答案不能初始化为0.。。。。 SB了一晚上。。。 相对哈密尔顿回路的问题,本题只在处理空格上有区别:一个不扩展空白点,一个扩展空白点。 其余完全一样。#include <cstdio>#include <algorithm>#include <map>using namespace std;const int N = 20001, M = 5001;typedef原创 2016-03-04 23:33:37 · 521 阅读 · 0 评论 -
BZOJ 2004|HNOI 2010 Day 1|公交线路|状态压缩动态规划|矩阵乘法
原题:小 Z 所在的城市有 N 个公交车站,排列在一条长为 N-1 公里的直线上,从左到右依次编号 为 1 到 N,相邻公交车站间的距离均为 1 公里。 作为公交车线路的规划者,小 Z 调查了市民的需求,决定按以下规则设计线路: 1. 设共有 K 辆公交车,则 1 到 K 号车站作为始发站,N-K+1 到 N 号车站作为终点站。 2. 每个车站必须被一辆且仅一辆公交车经停(始发站和终点站也算原创 2016-03-08 23:53:02 · 754 阅读 · 0 评论