
bitmask
文章平均质量分 77
yuhong_liu
这个作者很懒,什么都没留下…
展开
-
cf#306-B. Preparing Olympiad-bitmask暴力
n=15,L,R,X 给你n个背包,每个带有一个价值 要求你选一定数量的背包, 使得总价值sum>=L && sum 并且单个背包最大价值maxx-最小价值minn >= X; n太小,直接用 数的二进制表示每个背包的选择状态,最多就2^15 对每个状态判断一下是否合法即可 #include #include #include #include #include #i原创 2015-10-08 07:44:48 · 379 阅读 · 0 评论 -
ZOJ 3777 Problem Arrangement-状压dp
http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3777 输入n,m; 给一个n*n的矩阵,mp[i][j]表示第i题选题目j会有 相应的得分 让你选择一个序列,求序列得分超过m的个数 n《12,m 可以把12种状态压位到一个int dp[i][j] 中的i有cnt个1,表示选了前cnt题,那么接下来原创 2016-04-11 14:13:32 · 557 阅读 · 0 评论 -
cf#316-codeforces570D - Tree Requests -dfs序+分类再二分+树dp+异或位运算+bitmask(位压缩)
http://codeforces.com/contest/570/problem/D 题意:给一棵树n个节点,每个节点有一个字母信息。 节点1的深度为1,其他节点的深度 为 到1的距离 m次查询,每次查询 给出(v,h) 求以v为根节点的子树的所有节点中 深度在第 h 层 的所有节点 能否构成一个回文串(以任意顺序排列) 首先既然是任意顺序构成回文串的话,只要是该字母出现原创 2016-03-27 23:39:05 · 597 阅读 · 0 评论 -
UVALive 2965-Jurassic Remains (Mitm)中途相遇法+bitmask
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34853 题目大意:给出N个字符串,字符串里面的字符全是大写字母,要求你在N个字符串中选出M个字符串,使这M个字符串的每个字符出现的个数为偶数,求M的最大值 把字符串压缩到一个int的26位。要求一个字符串子集中 所有字符出现个数为偶数,也就是所原创 2016-03-30 16:51:02 · 776 阅读 · 0 评论 -
cf#8VC Venture Cup 2016 - Final Round (Div. 2 Edition)-C - XOR Equation-数学/位运算
http://codeforces.com/contest/635/problem/C 给出 sum,xor 让你求出有多少对 有序正整数对(a,b) 满足 a+b=sum, s^b=xor 有序就是(a,b)(b,a)算两次 得利用到一个公式 :a+b=a^b+(a&b)*2 即: a+b可分解为a^b[各位相加后该位的结果(不考虑进位)] 加上 (a&b)*2[进位的效果]原创 2016-03-18 01:12:02 · 516 阅读 · 0 评论 -
POJ-2965-The Pilots Brothers' refrigerator-bfs枚举-位运算
http://poj.org/problem?id=2965 规模比较小,每一个步骤都用位运算就好了 用queue老是tle,自己写一个queue就 ac了 219ms #include #include #include #include #include #include #include #include #include #include usi原创 2016-01-12 01:30:30 · 375 阅读 · 0 评论 -
POJ2531-Network Saboteur-暴力枚举+记忆化/dfs/随机化乱搞
。。。题目没什么好说的。。暴力的算法就直接遍历每种情况 复杂度 2^19 * 20*20 复杂度大的感人...POJ的数据太水。。 关于bitmask。。之前一直是 遍历i的每一位...今天看别人发现这样写 更快一点... for (k=0;k { set[1]++; for (i=1;i { if (set[i]==2) { set[i]=0; set[i+1]原创 2016-01-24 15:29:57 · 935 阅读 · 0 评论 -
UVa 11464-Even Parity 偶数矩阵-bitmask+暴力
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=24665 题意: 给你一个 n * n 的 01 矩阵,现在你的任务是将这个矩阵中尽量少的 0 转化为 1 ,使得每个数的上下左右四个相邻的数(如果存在)加起来是偶数。求最少的转化个数。n n规模很小...直接暴力枚举整个矩阵2^(15*15)显然不科学....原创 2015-10-30 02:14:24 · 477 阅读 · 0 评论 -
CF#321-D - Kefa and Dishes-状压DP+bitmasks
http://codeforces.com/contest/580/problem/D 题意 给出n个菜,要选出m个 每个菜有一个权值aa[i] 另有k个额外的条例 条例格式 X Y C: 如果先吃第X个菜,马上接着吃Y个菜,会得到额外的权值C 求n个菜选m个的条件下,可以得到的最大权值 思路: 由于n=18,所以我们可以用一个数的二进制位,来表示有没选第i道菜,也就是用一个数原创 2015-10-03 16:18:05 · 578 阅读 · 0 评论