![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
状压DP
状压DP
Kelin__
One loves the sunset, when one is so sad...
展开
-
[Codeforces1225G]To Make 1
题意定义函数f(x)={f(xk)k∣xxk∤xf(x)=\begin{cases}f(\frac xk)&k\mid x\\x&k\nmid x\end{cases}f(x)={f(kx)xk∣xk∤x给你nnn个正整数(a1,...,an)(a_1,...,a_n)(a1,...,an)和一个kkk,每次可以选择两个x,yx,yx,y删去,并把f(x...原创 2019-11-05 00:34:01 · 495 阅读 · 0 评论 -
[WC2018]州区划分
题目要求的:∑[∑[\sum[合法](∏ki=1∑x∈Viwx∑ij=1∑x∈Vjwx)pmod998244353](∏i=1k∑x∈Viwx∑j=1i∑x∈Vjwx)pmod998244353](\prod_{i=1}^k\frac{\sum_{x\in V_i}w_x}{\sum_{j=1}^i\sum_{x\in V_j}w_x})^p\mod 998244353合法条件:∑|Vi|=n...原创 2018-03-10 21:58:01 · 644 阅读 · 0 评论 -
[CodeForces11D]A Simple Task
题意:求简单无向图的环数状压DP,f[u][s][v]DP,f[u][s][v]DP,f[u][s][v]为u−>vu−>vu->v的环经过路径状态为s的路径数这样会有重复,所以直接设f[s][u]f[s][u]f[s][u]表示sss中最小的点到u的路径数为了避免重复计算,回到的点为sss中最小的点(这是一个优化,少了枚举最小点这个循环)如果vvv是sss中最小的点那...原创 2018-03-10 22:37:38 · 352 阅读 · 0 评论 -
[NOI2007]生成树计数
题意一个nnn个点的树,点iii只能向[i−k,i−1][i−k,i−1][i-k,i-1]内的点连边,求有标号生成树的个数n≤1015,k≤5n≤1015,k≤5n\le10^{15},k\le5题解题面误导向系列,显然不能像他说的那样做吧因为发现kkk特别小,所以可以考虑用状压表示iii和前k−1k−1k-1个点的联通情况考虑DP,f[i][j]DP,f[i][j]...原创 2018-03-30 00:16:48 · 487 阅读 · 0 评论 -
[Luogu4321]随机漫游
题意给你一幅图,每次给你一个点uuu和一个点集SSS问从uuu出发走完SSS集合(即SSS内点都至少经过一次)的期望步数 一个点uuu会等概率地走向其相邻的点题解这玩意是PKUWC2018D2T3PKUWC2018D2T3PKUWC2018D2T3随机游走的加强版思路和[HNOI2013]游走类似,也是通过高斯消元来DPDPDP考虑设f[S][i]f[S][i...原创 2018-04-02 20:25:55 · 348 阅读 · 0 评论 -
[Codeforces1234F]Yet Another Substring Reverse
题意给你一个字符串SSS,你可以翻转一次SSS的任意一个子串。问翻转后SSS的子串中各个字符都不相同的最长子串长度。∣S∣≤106,∣|S|\le10^6,|∣S∣≤106,∣字符集∣≤20|\le20∣≤20题解可以发现通过翻转操作我们可以将任意两个子串拼在一起。这样子串所在的位置就不重要了,只需要记录字符的状态即可。注意到∣|∣字符集∣≤20|\le20∣≤20,考虑状压记录所...原创 2019-10-02 23:26:01 · 320 阅读 · 0 评论 -
[Codeforces1238E]Keyboard Purchase
题意一个只包含前mmm个字母的长度为nnn的字符串sss对于一个包含前mmm个字母的排列,设poscpos_cposc表示字母ccc在排列中的位置求一个排列使得∑i=2n∣poss[i]−poss[i−1]∣\sum_{i=2}^n|pos_{s[i]}-pos_{s[i-1]}|∑i=2n∣poss[i]−poss[i−1]∣最小,输出最小值即可题解设cntx,ycnt_{x...原创 2019-10-10 22:40:49 · 301 阅读 · 0 评论