中等难度练习题1
HbFS-
di4CoveRy
展开
-
[Codeforces Gym]100162 H - Temperature 状态压缩dp
G[mask]是一个二进制状态,表示严格取mask这些人的实验结果算平均值的时候,有多少人的答案会被覆盖。F[mask] = G[mask] or F[S1] or F[S2] or F[S3] ... or F[Sn],其中Si为mask的子集这是$ 3^n $转移,显然会超时可以把它优化成,F[mask] = G[mask] or F[P1] or F[P2] ... F[Pn],原创 2016-12-17 10:02:26 · 368 阅读 · 0 评论 -
[UVALive]7344 数位dp+状态压缩dp
诶写了几天终于写过去了 看了网上无数的模板,发现都不好用,最后还是用了自己的办法写出来 细节多而且复杂状态压缩DP,F[mask]表示mask状态下的答案方案数,G[mask]表示取一个状态为mask的数的方案数 F[S]=∑(G[p]∗F[S异或p]) F[S] = \sum (G[p] * F[S异或p]) 其中p包含了lowbit(S)至于G[]数组怎么求,那就是另外一个数位DP了原创 2016-12-12 20:25:14 · 569 阅读 · 2 评论 -
[Codeforces Gym] 100162G 爆搜+剪枝
好气啊~在dfs到>r的时候忘记return了,调了好久暴力枚举字符串,记录最长的以当前结尾的后缀等于该字符串的前缀的长度k。若新加的字符c小于a[k]则不合法,若等于a[k]则k++,否则k=0。爆搜剪枝即可。可以证明,最多枚举$ n*m^n $就能出结果#include #include #define INF (1<<30) #define N 35using原创 2016-12-13 21:40:19 · 527 阅读 · 0 评论 -
[Codeforces Gym] 100162A Box Game 博弈+二分图匹配
第一次做交互题,真是留下了心理阴影先说题目,转化一下模型大概是一个n维棋盘博弈,每次只能移动到坐标相邻的点,已经访问过的点不能重复访问先求先手必胜还是必败,然后和计算机交互一道简化很多很多很多的题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2463结论:将初始点拿掉以后,对棋盘黑白染色,若与初始点颜色相反的点个数 >原创 2016-12-28 17:15:33 · 628 阅读 · 0 评论 -
[UVALive]7338 树链剖分+线段树
诶秒出正解的题目写起来就是爽有一个结论:在生成树上添加一条新边E{a,b,v}使得新图的最小生成树改变,充要条件是E和生成树形成的环中,v不是权值最大的边。对最小生成树进行树链剖分,按树链剖分序建线段树对于第n~m条边E{a,b,v},将a,b路径上的最短边求出来e{a0,b0,v0},v-v0即为该边能减小最多的值,增加最多的值为INF对于前1~n-1条边E{a,b,v}原创 2016-12-07 19:04:01 · 549 阅读 · 0 评论 -
[Codeforces Gym] 100162B Circle of Stones 结论+Hash
首先考虑链上的情况:假设存在一条链且任意相邻两位都不相同,那么不存在长度为l的合法链的充分必要条件是所有相距为l的字符都相同。若所有相距为l的字符串的字符都相同的充分必要条件是字符串s1和字符串s2完全相同。字符哈希判断即可。环上:三倍长拆环,每次寻找一条任意相邻两位都不相同的链,按照上面结论哈希即可。Notice:1、本题不需要开模数大小的数组,所以模数可以取原创 2016-12-19 19:45:18 · 598 阅读 · 0 评论