状压DP
文章平均质量分 66
BraketBN
这个作者很懒,什么都没留下…
展开
-
【HDU2825】Wireless Password【AC自动机】【状压DP】
感觉挺不错的题。 dp[i][j][mask] 表示长度为i的字符串,走到AC自动机上第j个节点时,状态为mask的方案数。 将每个mask选择了的字符串的个数预处理出来,统计答案时只需要将个数不小于k的贡献加上。 #include #include #include #define cls(a, x) memset(a, x, sizeof(a)) usi原创 2016-02-10 22:04:10 · 1221 阅读 · 0 评论 -
【HDU4085】Peach Blossom Spring【斯坦纳树】【状态压缩】
裸的斯坦纳树。 参考了凯爷blog:http://blog.csdn.net/lethelody/article/details/44808507 /* Footprints In The Blood Soaked Snow */ #include #include #include #include using namespace std; typedef pair pi原创 2016-03-14 16:16:31 · 691 阅读 · 1 评论 -
【BZOJ1097】[POI2007]旅游景点atr【最短路】【状压DP】【记忆化搜索】
k很小,所以可以状压。 先预处理出以1到k + 1为出发点的最短路,然后记忆化搜索。 /* Footprints In The Blood Soaked Snow */ #include #include #include #include #include using namespace std; typedef pair pii; const int max原创 2016-03-04 20:53:00 · 798 阅读 · 0 评论 -
【POJ3254】【BZOJ1725】Corn Fields【状压DP】
http://poj.org/problem?id=3254 自己写出的第一道状压DP,竟然1A了。 /* Footprints In The Blood Soaked Snow */ #include #include using namespace std; const int maxn = 13, maxs = (1 << 12) + 5, p = 100000000;原创 2016-03-17 14:36:58 · 477 阅读 · 0 评论 -
【BZOJ1076】[SCOI2008]奖励关【期望DP】【状压DP】
【题目链接】 写了忘发上来了。 /* Pigonometry */ #include #include using namespace std; typedef double DB; const int maxn = 20, maxk = 105, maxs = 1 << 16; int n, k, s[maxn], w[maxn]; DB dp[maxk][maxs]; int原创 2016-04-02 22:17:37 · 411 阅读 · 0 评论 -
【BZOJ3590】[Snoi2013]Quare【双连通分量】【状压DP】【神题】
【题目链接】 orz凯爷,见【Lethelody的题解】 首先一个双连通图可以拆为一个小双连通图和一条链。 设c[s][u][v]表示一条链的集合状态为s,链的端点分别为u和v的最短路径。 设h[s][u][0/1]表示集合状态为s,不在集合s内的点u与另一个在集合s中的点的最短路径/次短路径。 设f[s]表示集合状态为s,且s双联通的最小权值。 c可以递推转移。h原创 2016-04-07 23:19:09 · 1286 阅读 · 0 评论 -
【BZOJ4197】[Noi2015]寿司晚宴【状压DP】【背包】
【题目链接】 一开始取了前10个质数状压,然后就TLE了...改成前8个就没事了。 /* Pigonometry */ #include #include #include using namespace std; typedef long long LL; const int maxn = 505, maxk = 505; int n, p, prime[maxn], cn原创 2016-04-08 09:39:46 · 666 阅读 · 0 评论 -
【BZOJ4145】[AMPPZ2014]The Prices【状压DP】【背包】
【题目链接】 【tunix的题解】 /* Telekinetic Forest Guard */ #include #include #include using namespace std; const int maxn = 105, maxm = 18, maxs = 1 << 16, inf = 0x3f3f3f3f; int n, m, dp[maxn][maxs],原创 2016-05-30 17:07:21 · 474 阅读 · 0 评论