
状压dp
hannibal_lecter_
这个作者很懒,什么都没留下…
展开
-
poj2411【状压dp】
#pragma GCC optimize(2)#include<cstdio>#include<cstring>using namespace std;typedef long long ll;const int maxn = 1e5+5;int n, m, yy[1<<12];ll dp[12][1<<12];void init()...原创 2019-02-27 21:25:34 · 147 阅读 · 0 评论 -
P2622 关灯问题II【状压dp】
#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5+5;int Case = 1;struct node{ int s, num;};int a[105][1050], vis[1000005];i...原创 2019-02-27 21:36:08 · 150 阅读 · 0 评论 -
P1879 [USACO06NOV]状压dp
#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5+5;const int mod = 100000000;int n, m, cc[20][20], st[1<<13], mp[13], dp[13...原创 2019-02-27 21:38:03 · 129 阅读 · 0 评论 -
P1896 [SCOI2005]【状压dp】
#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5+5;int Case = 1;int n, m;ll y[1<<10], dp[10][1<<10][100], mp[10], nu...原创 2019-02-27 21:39:20 · 92 阅读 · 0 评论 -
[Wc2008]游览计划【斯坦纳树】
斯坦纳树的问题模型是:有一个图,要求保留图中最少的边/最小的边权和使得某k个点相互连通。最小生成树是斯坦纳树的一种特殊情况。我们用f[i]][j][s]表示方格中i,j位置与各个景点之间的联通情况。如果景点数为3时,111表示全部联通, 101表示第二个景点没有联通。。。当然第x个景点的 f[i][j][(1<<x)] = 0,其他的情况先初始化为inf。状态怎么转移?有两种...原创 2019-02-28 21:42:27 · 247 阅读 · 0 评论 -
UVA - 11825【状压DP】
题意很容易懂,注意一点相邻不代表联通。首先要知道有两种状态 1,第i台计算机影响的所有计算机的状态。(p[18]) 2,攻击哪些状态的计算机可以使服务瘫痪。(c[1<<18])使dp[s]代表使状态为s的计算机最大数量的服务瘫痪。(dp[1<<18])状态转移方程就是 dp[s] = max(dp[s], dp[s^s0]+1)(s0是s的子集)问题就可以解决...原创 2019-03-01 21:14:43 · 111 阅读 · 0 评论 -
HDU-2825[AC自动机+状压dp]
不要被状压吓倒了。。和之前用AC自动机求构造字符串的数量方法类似,但是这个问题要多开一维状态表示包含多少特殊的串。dp[i][j][k]表示长度为i已经匹配到j的串包含特殊串的状态为k的数量。转移方程是dp[i][u][s|ed[u]] += dp[i-1][j][s](u = j->ch)#include<bits/stdc++.h>using namespace st...原创 2019-04-09 00:36:12 · 128 阅读 · 0 评论