状压DP
romiqi_new
这个作者很懒,什么都没留下…
展开
-
191101CSP模拟题解
T1:给定n,k,ln,k,ln,k,l,求nnn个数每个取值[0,l][0,l][0,l],其一个子序列和为kkk的方案数,n,k≤20n,k\le 20n,k≤20补集转化,是个背包,然后状压算方案,dp of dpCode:#include<bits/stdc++.h>#define ll long long#define mod 998244353using nam...原创 2019-11-01 17:07:40 · 359 阅读 · 0 评论 -
[BZOJ5019][FWT][状压DP]SNOI2017:遗失的答案
BZOJ5019就是转化成求一堆数gcd的常用套路:考虑最小最大次幂然后状压DP,f[i][j]f[i][j]f[i][j]表示到第i个,状态为j这里最多600种转移,可以直接爆搜如果我们正着DP一遍,反着DP一遍,那么合并就是or卷积:在正反中任意一个出现的必须保留最后做一遍andfwt来回答询问Code:#include<bits/stdc++.h>#define l...原创 2019-09-02 22:05:30 · 134 阅读 · 0 评论 -
190921CSP-S模拟题解
T1:lcm求给定的数集的任意非空子集的lcm之和数集大小2000,元素大小200要求lcm,那显然唯一分解然后很容易发现200以内的所有素数中,在某个合数的分解中对应幂次大于1的只有200\sqrt{200}200级别,即2,3,5,7,11,132,3,5,7,11,132,3,5,7,11,13所以我们可以把这些素数出现的状态压缩一下,然后每个合数除掉这些素数之后剩下的一定只剩下...原创 2019-09-23 09:00:59 · 309 阅读 · 0 评论 -
190930模拟题解
T1:你在跟朋友玩一个记忆游戏。朋友首先给你看了n个长度相同的串,然后从中等概率随机选择了一个串。每一轮你可以询问一个位置上的正确字符,如果能够凭借已有的信息确定出朋友所选的串,那么游戏就结束了,你的成绩就是所用的轮数。由于你实在太笨,不会任何策略,因此你采用一种方法,每次等概率随机询问一个未询问过的位置的字符。现在你想知道,在这种情况下,你猜出结果所需的期望次数。状压DP,预处理一个f...原创 2019-10-02 17:21:21 · 172 阅读 · 0 评论