随笔分类 - Codeforces
摘要:Sereja and Cinema 首先我们可以发现除了第一个人, 其他人都会坐在已入坐人的旁边。 难点在于计算方案数。。 我们可以从外往里把确定的人用组合数算上去,然后缩小范围。
阅读全文
摘要:Gifts 感觉题解写的就是坨不知道什么东西。。 看得这个题解。
阅读全文
摘要:Game with Strings 题意并不是在图上走,看了好久才看出来。。 dp[ i ][ mask ]表示从 i 层开始走,起点有mask个, a的个数-b的个数的 最大值或者最小值。
阅读全文
摘要:Sereja and Sets 我们先考虑对于一堆线段我们怎么求最大的不相交的线段数量。 我们先按 r 排序, 然后能选就选。 所以我们能想到我们用$dp[ i ][ j ]$表示已经选了 i 个线段, 最后一个被选的线段的右端点是 j 的方案数。 对于dp[ i ][ j ] -> dp[ i +
阅读全文
摘要:Summer Practice Report dp[ i ][ 0 ]表示放完前 i 页, 第 i 页最后一段是 0, 0个数的最小值。 dp[ i ][ 1 ]表示放完前 i 页, 第 i 页最后一段是 1, 1个数的最小值。 这个转移细节有点多。。。
阅读全文
摘要:Prefix Sums 在 n >= 4时候直接暴力。 n <= 4的时候二分加矩阵快速幂去check
阅读全文
摘要:Liar 刚开始感觉只要开个dp[ i ][ j ][ 0 / 1 ]表示处理了s的前 i 个用了 k 段, i 是否是最后一段的最后一个字符 的 t串最长匹配长度, 然后wa24, 就gg了。感觉这个转移感觉很对, 但是实际上不对。。。 比如s = ababcde, t = abcde, x =
阅读全文
摘要:A Shade of Moonlight 列列式子发现, 对于同一个云来说只有反向的云才能和它相交, 然后我们发现这个东西有单调性,然后二分就好啦。
阅读全文
摘要:Ratings and Reality Shows 参加talk show的时间肯定是在某个t[ i ]的后一秒, 枚举一下就好了。
阅读全文
摘要:E - Forensic Examination 我也不知道为什么这个复杂度能过, 而且跑得还挺快, 数据比较水? 在sa上二分出上下界, 然后莫队 + 线段树维护区间众数。
阅读全文
摘要:Cardboard Box 贪了个半天贪不对, 我发现我根本就不会贪心。 我们先按b排序, 然后枚举选两颗心的b的最大值, 在这个之前的肯定都要选一个, 因为前面的要是一个都没选的话, 你可以把当前选两颗心的替换成前面选两颗心, 然后用平衡树或者线段树维护一下前k大和就好啦。
阅读全文
摘要:码就完事了。
阅读全文
摘要:Divisibility 我们考虑删数字 首先我们可以发现有一类数很特殊就是大于 n / 2的素数, 因为这些素数的贡献只有1, 并且在n大的时候, 这些素数的个数不是很少, 我们可以最后用这些数去调整, 并且删掉一个数的时候删掉的是它的因子个数, 所以可以用素数去控制最后的数量。当n小的时候直接状
阅读全文
摘要:Anti-Palindromize 想到网络流就差不多了, 拆拆点, 建建边。
阅读全文
摘要:最关键的一点就是 f[ 0 ] * a[ 0 ] + f[ 1 ] * a[ 1 ] + ... + f[ n - 1] * a[ n - 1] f[ 1 ] * a[ 0 ] + f[ 2 ] * a[ 1 ] + ... + f[ n ] * a[ n - 1] f[ 2 ] * a[ 0 ]
阅读全文
摘要:Periodic RMQ Problem 动态开点线段树直接搞, 我把它分成两部分, 一部分是原来树上的, 一部分是后来染上去的,两个部分取最小值。 感觉有点难写。。 简化 指针
阅读全文
摘要:Cup Trick 平衡树维护一下位置。
阅读全文
摘要:Yaroslav and Points 明明区间合并一下就好的东西, 为什么我会写得这么麻烦的方法啊啊啊。
阅读全文
摘要:Opening Portals 我们先考虑如果所有点都是特殊点, 那么就是对整个图求个MST。 想在如果不是所有点是特殊点的话, 我们能不能也 转换成求MST的问题呢? 相当于我们把特殊点扣出来, 然后求出两两之间的最短路, 然后求MST, 但直接这样暴力做 肯定不行。 我们先跑个多元最短路, 找到
阅读全文
摘要:Paper task 如果不要求本质不同直接st表二分找出最右端, 然后计数就好了。 要求本质不同, 先求个sa, 然后用lcp求本质不同就好啦。
阅读全文