随笔分类 - Codeforces
摘要:Rhombus 不想写标程啊, 转成切比雪夫距离暴力就能过啦。。 复杂度n * m * k, 其实复杂度能处理到n * m
阅读全文
摘要:Camping Groups 通过分析我们能发现, 如果 i 以前放完了, i 以后随便放的话必定有解。 所以我们只要找出第一个比原串大的地方就好啦, 用hash来判断是不是回文。
阅读全文
摘要:Fetch the Treasure 感觉这题很nb啊, 虽然套了一个一点都不有趣的壳子。 我们注意到 k 的值在 1e4以内, 我们用d[ i ] 表示在模 k == i 能达到的最小的值是谁。 用最短路取更新。。
阅读全文
摘要:Camping Groups 我们先计算出, 每个点当leader所能掌控的最多人数。 然后我们把询问离线, 丢到responsibility最大的那个地方去。 然后从大到小往线段树里加人, 加入完之后处理掉当前的询问。 如果强制在线的话就只能树套树啦。
阅读全文
摘要:Dividing Kingdom 9!枚举, 码就完事了。
阅读全文
摘要:Greedy Subsequences 我们先找到每个点的右边第一个比它大的, 然后从大的往它建边, 然后可以发现这是一棵树。 我们令d[ i ] 为 i 号点往上走最多能走几步, 我们能用线段树维护d 的值。 我们加入点 i 的时候, 我们把它的值设为 d[ fa ] + 1, 我们删除 i 的时
阅读全文
摘要:Power Tree 没想到一个点到 1 的贡献和到 u 的贡献存在比例关系, 只要乘以 deg[ u ] * m[ u ], m[ u ] 表示 u 到 1, 所成的系数。 然后我们用dfs序建出线段树后, 维护每个点乘的系数, 区间值的和就可以了。
阅读全文
摘要:Two Permutations 关键是没想到按大小顺序把第二个排列一个一个加入线段树, 然后线段树维护整体的hash值, 得到的hs值减去一个sub 之后与, 第一个排列的hash值比较。
阅读全文
摘要:Cinema 感觉这个题好神啊。。。 首先如果 n 比 m 大, 我们先旋转90度。 我们要加入一个(x, y)的时候, 我们枚举答案所在的行离 x 的距离 g , 然后对于x + g 行来说 我们找到(x + g, y)左边的第一个和右边的第一个未被占的位置,更新答案, 如果 g > 答案 退出。
阅读全文
摘要:TorCoder 开26个线段树维护数量, 然后就没了。。
阅读全文
摘要:把式子二项式展开之后, 会发现是需要维护a[ i ], i * a[ i ] .... i ^ 5 * a[ i ], 的区间和, 然后用线段树维护。
阅读全文
摘要:Optimize! 这个题目代码看了我半天。。 我们把终点关注在b数组, 我们先将b[ i ] 变成 h - b[ i ]并排好序, 对于一个a[ j ]来说如果它能和b[ i ]匹配, 那么它能和b[ k ], k < i, 匹配。 什么情况下能匹配成功呢, 就是b数组中 前 i 个数至少能和 l
阅读全文
摘要:Deduction Queries 用并查集维护前缀的关系, 在同一个联通块内两两之间的异或值都是已知的。 每个点再维护一个和它当前父亲的异或值, 压缩路径的时候更新一下就好了。
阅读全文
摘要:Jamie and Tree 我们按 1 号点为根建dfs序线段树。即使换了根, 我们也能通过分类讨论去更新求答案。
阅读全文
摘要:Scalar Queries 昨天没打好像亏疯了, 好像都是sb题啊。 我们先考虑单个区间[L, R], 对于[L, R]中的一个数 x , 我们只需要只要有多少个数字排序之后排到它前面去了就好。 那么整体来说对于 x , 只有比 x 小的数字对 x 有贡献, 我们只要计算出所有比它小的数字, 在所
阅读全文
摘要:Range Deleting 考虑枚举L, R明显具有可二分性, 然后预处理一些东西, 二分就好啦。
阅读全文
摘要:Inversions After Shuffle 如果改变的是[L, R], 那么[L, R]内的逆序对数的期望为 len * (len - 1) / 2 所以我们的目标变成了, 求出所有区间内的逆序对之和, 这个用树状数组就能维护了。
阅读全文
摘要:Putting Boxes Together 二分找到分界点, 左边的往右移, 右边的往左移。 其实把a[ i ] - i 之后就变成了移到一个点, 然后我维护移到一个线段都要维护自闭了。
阅读全文
摘要:Subset Sums 把所有集合分成大于sqrt(n)和小于sqrt(n)的集合, 处理出每两个集合有交集是多大之后就可以在sqrt(n)的复杂内完成一次操作。
阅读全文
摘要:Till I Collapse 对于每个 k, 考虑贪心地取, 最多分成 n / k段, 每段都贪心取的话, 总次数为nlogn 用线段树维护这个过程, 在线段树上二分就可以了。
阅读全文

浙公网安备 33010602011771号