随笔分类 -  Codeforces

摘要:C - Tachibana Kanade's Tofu 思路:把 n 个串丢进AC自动机中,然后dp就好啦。 我的代码居然是在CF上跑最快的。。 阅读全文
posted @ 2019-01-01 20:45 NotNight 阅读(225) 评论(0) 推荐(0)
摘要:#include #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair #define PLI pair #define PII pair #define SZ(x) ((int)x.size()) #define ull unsigned long long u... 阅读全文
posted @ 2018-12-30 19:33 NotNight 阅读(333) 评论(0) 推荐(0)
摘要:F - Vasya and Array dp[ i ][ j ] 表示用了前 i 个数字并且最后一个数字是 j 的方案数。 dp[ i ][ j ] = sumdp [i - 1 ][ j ], 这样的话会有不合法的方案算进去,而且不合法的方案只有 i - len + 1 到 i 这一段相同才会 出 阅读全文
posted @ 2018-12-27 13:07 NotNight 阅读(115) 评论(0) 推荐(0)
摘要:B - Free Market 思路:这个题怎么说呢,迷惑性很大,题目里说了交换了两个集合的时候如果有相同元素不能交换,感觉如果没 这句话能很快写出来, 其实当交换的两个集合有重复元素的时候只要交换那些不重复的就好啦,这样就相当于能 交换两个有交的集合,那么对于两个集合S1, S2我们不需要去考虑有 阅读全文
posted @ 2018-12-10 21:18 NotNight 阅读(169) 评论(0) 推荐(0)
摘要:D - Bags and Coins 思路:我们可以这样构造,最大的那个肯定是作为以一个树根,所以我们只要找到一个序列a1 + a2 + a3 .... + ak 并且ak为 所有点中最大的那个,那么我们a1, a2, a3..., ak-1 作为单独的点,其他没有涉及到的点套在ak的里面。 现在问 阅读全文
posted @ 2018-12-10 18:46 NotNight 阅读(216) 评论(0) 推荐(0)
摘要:扫描线一边扫一边算期望,细节比较多。 阅读全文
posted @ 2018-12-01 23:57 NotNight 阅读(272) 评论(0) 推荐(0)
摘要:F - Yura and Developers 第一次知道单调栈搞出来的区间也能启发式合并。。。 你把它想想成一个树的形式, 可以发现确实可以启发式合并。 阅读全文
posted @ 2018-11-06 16:38 NotNight 阅读(142) 评论(0) 推荐(0)
摘要:B - Byteland Trip 题目大意:给你一个由'<' 和 '>'组成的串, 如果在'<' 只能前往编号比它小的任意点, 反之只能前往比它大的任意点,问你能遍历所有点 并且每个点只走一次终点在各个位置的方案数。 思路:感觉这种右能从左边跑到右边又跑回来的dp很难搞,如果我们确定一个终点, 如 阅读全文
posted @ 2018-11-05 21:22 NotNight 阅读(213) 评论(0) 推荐(0)
摘要:E - Preorder Test 思路:想到二分答案了之后就不难啦, 对于每个答案用树形dp取check, 如果二分的值是val, dp[ i ]表示 i 这棵子树答案不低于val的可以访问的 最多节点, 第二次dfs求出以每个点为根的答案。 阅读全文
posted @ 2018-11-04 20:22 NotNight 阅读(217) 评论(0) 推荐(0)
摘要:F - Cowslip Collections http://codeforces.com/blog/entry/43868 这个题解讲的很好。。。 阅读全文
posted @ 2018-11-04 16:19 NotNight 阅读(213) 评论(0) 推荐(0)
摘要:E - Intellectual Inquiry 思路:我自己YY了一个算本质不同子序列的方法, 发现和网上都不一样。 我们从每个点出发向其后面第一个a, b, c, d ...连一条边,那么总的不同子序列就是从0号点出发能走出多少条 不同点的路径。 dp[ i ]表示是到 i 这个点的不同路径数, 阅读全文
posted @ 2018-11-04 00:57 NotNight 阅读(128) 评论(0) 推荐(0)
摘要:F - Group Projects 题目大意:给你n个物品, 每个物品有个权值ai, 把它们分成若干组, 总消耗为每组里的最大值减最小值之和。 问你一共有多少种分组方法。 思路:感觉刚看到的时候的想法是先排好序, dp[ i ][ j ][ k ]表示已经划分了 i 个, 并且分成了 j 组, 目 阅读全文
posted @ 2018-11-03 20:40 NotNight 阅读(151) 评论(0) 推荐(0)
摘要:E - Three strings 将三个串加进去,看每个节点在三个串中分别出现了多少次。 阅读全文
posted @ 2018-11-02 19:01 NotNight 阅读(163) 评论(0) 推荐(0)
摘要:F - Permutation 思路:对于当前的值x, 只需要知道x + k, x - k这两个值是否出现在其左右两侧,又因为每个值只有一个, 所以可以转换成,x+k, x-k在到x所在位置的时候是否都出现,或者都不出现,即出现情况相等,我们可以 用线段树维护hash值的方式来判断所有x+k, x- 阅读全文
posted @ 2018-11-02 12:53 NotNight 阅读(194) 评论(0) 推荐(0)
摘要:C - Curious Array 思路:对于区间[l, r]每个数加上C(i - l + k, k), 可以在l处+1, 在r+1处-1, 然后做k+1次求前缀和操作,然后就可以写啦。 然后逐层求前缀和的时候r+1上都要减去一个组合数。 阅读全文
posted @ 2018-10-14 20:07 NotNight 阅读(139) 评论(0) 推荐(0)
摘要:E - Aquarium decoration 枚举两个人都喜欢的个数,就能得到单个喜欢的个数,然后用平衡树维护前k大的和。 阅读全文
posted @ 2018-10-07 11:35 NotNight 阅读(194) 评论(0) 推荐(0)
摘要:G - Xor-matic Number of the Graph 上一道题的加强版本,对于每个联通块需要按位算贡献。 阅读全文
posted @ 2018-10-04 12:18 NotNight 阅读(126) 评论(0) 推荐(0)
摘要:E - Goods transportation 思路:这个最大流-> 最小割->dp好巧妙哦。 阅读全文
posted @ 2018-10-03 22:15 NotNight 阅读(119) 评论(0) 推荐(0)
摘要:F - New Year and Cleaning 这题简直是丧心病狂折磨王。。 思路:容易想到这样一个转换,把整个矩形一起移动,矩形移出去的时候相当于一行或者一列。 为了优化找到下一个消去的点,我先把原数组扩大两倍,用了st表加二分去找,然后就MLE, 我又换了 线段树TLE,最后不把数组扩大两倍 阅读全文
posted @ 2018-10-01 00:46 NotNight 阅读(166) 评论(0) 推荐(0)