随笔分类 - 动态规划——状压DP
摘要:Contest Page A sol 每次选最小的,然后把它的所有倍数都删掉。 #include<bits/stdc++.h> using namespace std; int read(){ int a = 0; char c = getchar(); bool f = 0; while(!isd
阅读全文
摘要:"传送门" 应该都会判欧拉回路吧(雾 考虑状压DP:设$W_i$表示集合$i$的点的权值和,$route_i$表示点集$i$的导出子图中是否存在欧拉回路,$f_i$表示前若干个城市包含了集合$i$的所有方案满意度的和,转移枚举最后一个放入的城市集合$x$,有$f_i = \frac{\sum\lim
阅读全文
摘要:"程序自动分析" (并查集) NOI出这种题我还有什么好说的呢…… 拆点并查集即可。 "代码" "软件包管理器" (树链剖分、线段树) 一个支持区间赋值和区间和的线段树+树链剖分即可 "代码" "寿司晚宴" (数论、状压DP) 数论题$n \leq 500$肯定是什么暴力算法…… 注意到每一个数$
阅读全文
摘要:"传送门" 首先对于所有数求gcd并求出这个gcd含有的质因子,那么在所有数中,只有这一些质因子会对答案产生影响,而且对于所有的数,每一个质因子只会在一个数中被删去。 质因子数量不会超过$11$,所以考虑暴力的状压DP:设$f_{i,j,k}$表示前$i$个数中选出$j$个数并删去了集合为$k$的质
阅读全文
摘要:传送门 考虑如果只有$0$组边要怎么做。因为$N \leq 15$,考虑状压$DP$。设$f_i$表示当前的匹配情况为$i$时的概率($i$中$2^0$到$2^{N-1}$表示左半边的匹配情况,$2^N$到$2^{2N-1}$表示右半边的匹配情况),转移就是随便取一条边将其起终边对应的位置去掉然后乘
阅读全文
摘要:传送门 两种$DP$: ①$f_{i,j}$表示前$i$次选择,最大独立集为$j$时达到最大独立集的方案总数,转移:$a.f_{i,j}+=f_{i+1,j+2^k}$(保证$k$加入后符合条件);$b.f_{i,j}+=f_{i+1,j} \times \text{现在可以放的不影响最大独立集的点
阅读全文

浙公网安备 33010602011771号