状态压缩
ID_BePosit
如果今天不比昨天多做一点什么,那么明天还有什么意义。
展开
-
D - Largest Group -状压枚举或最大团
D - Largest Group Gym - 101915D 题意 男生p个,女生p个,男生们相互都为朋友女生们也都是朋友 ,男生女生为朋友会给出关系图 求一个最大的朋友关系集合里面每两个人都相互为朋友, 状压: 二进制枚举所有男生组合情况 位运算辅助求出在每种情况下的 人数为多少,不断维护最大值 #include<bits/stdc++.h>usi...原创 2018-10-04 14:21:13 · 5070 阅读 · 0 评论 -
L - Por Costel and the Semipalindromes -二进制枚举字典序
L - Por Costel and the Semipalindromes Gym - 100923L 注意还得是符合要求的字典序即收尾相同 #include<bits/stdc++.h>using namespace std;#define ll long long#define maxn 111ll t,n,k,sum;char str[maxn...原创 2018-10-05 10:54:20 · 377 阅读 · 0 评论 -
B - 炮兵阵地 POJ - 状压DP
B - 炮兵阵地 POJ - 1185 对于原始的矩阵,我们用0来表示可以放置炮兵,即对应图中的P,这样每一行都有一个可以放置炮兵的状态,存到row[N]中,用来check该行的状态是否合法。 由于当前行和前两行有关系,所以得用3维矩阵来保存一个状态下最多的炮兵个数,用dp[i][curst][prest]表示当前第i行状态对curst,前一行状态为prest的最大炮兵数。 转移...原创 2018-10-16 09:14:44 · 217 阅读 · 0 评论 -
G - Party CodeForces - 906C -状态压缩+DFS
G - Party CodeForces - 906C 题意:给出一些关系都是双人关系而且无向,可以进行一步操作,每一步操作是选择一个人, 让这个人认识关系群里面的人都相互认识,求一个最小操作数 思路:第二次碰到这样的状态压缩题目了,把一个人所认识其他人用二进制来表示1<<n-1为则表示这个人认识n个人 因为1<<n-1 二进制有n为全为1,就是说二进...原创 2018-11-07 14:42:22 · 240 阅读 · 0 评论 -
B - How many integers can you find HDU - 1796 -状压-容斥
B - How many integers can you find HDU - 1796 (1)两个集合容斥关系 (2)三个集合容斥关系 公式: 这就是所谓的奇加偶减。 #include<bits/stdc++.h>using namespace std;#define ll long longint n,m,top,d;ll an...原创 2018-12-22 10:28:57 · 176 阅读 · 0 评论 -
G - Snake Rana-状压-容斥
G - Snake Rana 假设K=3,也就是说有3个黑色的单位正方形,我们不妨设这三个黑色单位正方形是A,B和C。 所有矩形的数目 = - 包含A的矩形数目 - 包含B的矩形数目 - 包含C的矩形数目 + 包含AB的矩形数目 + 包含BC的矩形数目 + 包含CA的矩形数目 - 包含ABC的矩形...原创 2018-12-24 10:09:51 · 252 阅读 · 0 评论