随笔分类 - Codeforces
摘要:看别人写的才学会的。。。 我们考虑刚开始的一个点, 然后我们枚举接上去的一条一条链, dp[mask]表示当前已经加进去点的状态是mask所需的最少边数。 反正就是很麻烦的一道题, 让我自己写我是写不出来的。。。 我好菜啊。
阅读全文
摘要:Vanya and Balloons 枚举中心去更新答案, 数字过大用log去比较, 斜着的旋转一下坐标, 然后我旋出来好多bug。。。。
阅读全文
摘要:The Minimum Number of Variables 我们定义dp[ i ][ mask ]表示是否存在 处理完前 i 个a, b中存者 a存在的状态是mask 的情况。 然后用sosdp处理出,状态为state的a, 能组成的数字, 然后转移就好啦。
阅读全文
摘要:Mahmoud and Ehab and yet another xor task 存在的元素的方案数都是一样的, 啊, 我好菜啊。 离线之后用线性基取check存不存在,然后计算答案。
阅读全文
摘要:Little Elephant and Broken Sorting 怎么感觉这个状态好难想到啊。。 dp[ i ][ j ]表示第 i 个数字比第 j 个数字大的概率。转移好像比较显然。
阅读全文
摘要:Devu and Birthday Celebration 我们发现不合法的整除因子在 m 的因子里面, 然后枚举m的因子暴力容斥, 或者用莫比乌斯系数容斥。
阅读全文
摘要:PolandBall and Gifts 转换成置换群后, 对于最大值我们很好处理。 对于最小值, 只跟若干个圈能否刚好组能 k 有关。 最直观的想法就是bitset优化背包, 直接搞肯定T掉。 我们能再发掘一些性质, 就是本质不能的圈的大小最多有sqrt(n)个, 因为1 + 2 + 3 ...
阅读全文
摘要:Sasha and Interesting Fact from Graph Theory n 个 点形成 m 个有标号森林的方案数为 F(n, m) = m * n ^ {n - 1 - m} 然后就没啥难度了。。。
阅读全文
摘要:On the Bench 两个数如果所有质因子的奇偶性相同则是同一个数,问题就变成了给你n个数, 相同数字不能相邻的方案数。 dp[ i ][ j ]表示前 i 种数字已经处理完, 还有 j 个位置需要隔开的方案数。 转移的话, 我们枚举第i + 1种数字分成的段数, 然后枚举有几段插到 j 个空格
阅读全文
摘要:Expected diameter of a tree 我们先两次dfs计算出每个点能到达最远点的距离。 暴力计算两棵树x, y连边直径的期望很好求, 我们假设SZ(x) < SZ(y) 我们枚举 x 的每个端点, 二分找到分界点, 复杂度为SZ(x) * log(SZ(y)) 其实我们对于每次询问
阅读全文
摘要:New Year and Old Subsequence 第一感觉是离线之后分治求dp, 但是感觉如果要把左边的dp值和右边的dp值合起来, 感觉很麻烦而且时间复杂度不怎么对。。 然后就gun取看题解了, 用线段树维护dp的值, 然后区间合并求答案。 每个节点保存dp[ i ][ j ]表示, 把当
阅读全文
摘要:Dating 随便树上莫队搞一搞就好啦。
阅读全文
摘要:感觉和昨天写了的题一模一样。。。 这种题也能用hall定理取check, 感觉更最小割差不多。
阅读全文
摘要:Constrained Tree 没写出来好菜啊啊。 首先根据输入我们能算出某些节点的左儿子的范围, 右儿子的范围(此时并不准确) 然后我们在划分u这个节点的时候我们从左右开始用树状数组check每一个点是否可行, 即这个点没有被覆盖, 因为左右同时开始所以复杂度是nlognlogn,以前做过这种从
阅读全文
摘要:Allowed Letters 最直观的想法是贪心取, 然后网络流取check可不可行, 然后T了。 想到最大流可以等于最小割, 那么我们状压枚举字符代表的6个点连向汇点是否断掉, 然后再枚举64个本质不同的位置, 是否需要切段原点联想它的边, 单次check复杂度64 * 64 用sosdp能优化
阅读全文
摘要:Chemistry Experiment 维护一个权值线段树,然后二分答案。
阅读全文
摘要:Neatnes dfs一下用set维护能不能走, 进入的时候点亮灯, 回溯的时候灭灯。
阅读全文
摘要:Space Isaac 我们定义第一个集合为a, 第二个集合为b 先把a数组排序, 然后我们会以线段的形式得到b集合。 我们先用a[ 1 ]去和 b 中的元素结合, 只有size(a) 个数字未被覆盖, 我们从这些数组中选答案。 枚举这些数字, 什么情况下才它是答案呢, 就是移到a[ 2 ], a[
阅读全文
摘要:我们肯定要一大一小间隔开来所以 把式子拆出来就是类似这样的形式 s1 - 2 * s2 + 2 * s3 + ...... + sn 然后把状态开成四个, 分别表示在顶部, 在底部, 在顶部到底部的中间, 在底部到顶部的中间。 反思一下为什么没写出来:我在考虑的时候 |s2 - s1| + |s3
阅读全文
摘要:Billiard 枚举终点, 对于每一个终点一共有四种周期的相遇方式, 枚举一下取最小的时间。
阅读全文