随笔分类 -  Codeforces

1 2 3 4 5 ··· 20 下一页
摘要:Find String in a Grid 把矩阵按行接起来求一个SA, 把矩阵按列接起来求一个SA, 然后就枚举询问串的转折点, 转换成求矩阵内二维数点的个数。 阅读全文
posted @ 2019-11-07 13:54 NotNight 阅读(351) 评论(0) 推荐(0)
摘要:Choosing Two Paths 搞不懂为啥我要写换根啊, 这么麻烦。。 阅读全文
posted @ 2019-11-06 17:23 NotNight 阅读(217) 评论(0) 推荐(0)
摘要:直接把 r 加进去建虚树, 考虑虚树上的dp, 我们考虑虚树的dfs序的顺序dp过去。 dp[ i ][ j ] 表示到 i 这个点为止, 分成 j 组有多少种合法方案。 dp[ i ][ j ] = dp[ i - 1 ][ j ] * (j - have[ i ]) + dp[ i - 1 ][ 阅读全文
posted @ 2019-11-06 00:18 NotNight 阅读(259) 评论(0) 推荐(0)
摘要:U2 把坐标转(x, y)换成(x, y - x * x)之后就是求个上凸包 阅读全文
posted @ 2019-11-05 11:28 NotNight 阅读(254) 评论(0) 推荐(0)
摘要:Leaf Partition 考虑树形dp dp[ u ][ 0 ] 表示 u 这棵子树处理完, 不能向上延伸的方案数。 dp[ u ][ 1 ] 表示 u 这棵子树处理完, 必须向上延伸的方案数。 dp[ u ][ 2 ] 表示 u 这棵子树处理完, 可以向上延伸的方案数。 然后转移的时候细心一点 阅读全文
posted @ 2019-11-04 13:54 NotNight 阅读(307) 评论(0) 推荐(0)
摘要:Hot is Cold 好像我写麻烦了, 其实只用线段树维护区间每个数反转, 区间赋值就可以。 阅读全文
posted @ 2019-11-04 13:52 NotNight 阅读(174) 评论(0) 推荐(0)
摘要:Mobile Phone Network 先把k个边加进去, 然后用m条边从小到达能加就加, 那么对于m条边中剩余的那些边(u, v, w) 只有在树形成的路径(u, v)上存在一条比w大的边才能放进去, 那么路径(u, v)上所有边小于等于w 用每条边更新一次用并查集维护, 用st表压标记可能会T 阅读全文
posted @ 2019-10-31 13:06 NotNight 阅读(190) 评论(0) 推荐(0)
摘要:可以发现最多只有n个列是有用的, 然后状压dp一下就好了。 阅读全文
posted @ 2019-10-24 18:46 NotNight 阅读(230) 评论(0) 推荐(0)
摘要:Self-exploration 对于给定的c00, c01, c10, c11, 我们能得出0的段数, 1的段数, 0的个数, 1的个数。 然后就是用隔板法算方案数, 对于小于A这个操作, 我们枚举小于的位置用同样的方法算方案数就好啦。 阅读全文
posted @ 2019-10-23 11:19 NotNight 阅读(161) 评论(0) 推荐(0)
摘要:Array Game 考虑最裸的dp去求胜负态。 dp[ i ] 从后面的 m 个状态转移过来。 我们考虑如何用线段树维护, T[ i ][ mask ] 表示 i 这段区间如果后面接的m位是mask使时开头m位的mask, 对于修改的话只要维护一个反过来的T2就可以了。 感觉是可以想出来的题, 为 阅读全文
posted @ 2019-10-22 21:34 NotNight 阅读(309) 评论(0) 推荐(0)
摘要:根据题目描述可知是个特殊的仙人掌, 然后把环扣出来fwt算方案数就好了。 阅读全文
posted @ 2019-10-22 14:25 NotNight 阅读(289) 评论(0) 推荐(0)
摘要:Two Prefixes 在纸上画了画感受一下可以感觉和循环节有关, 我们把每个可以表示的串写成 pre_a_i + pre_b_j的形式, 我们使得每个串在 i 最大的时候被统计到, 那么我们考虑答案为n * m - 重复的串个数, 对于pre_a_i + pre_b_j 这个串, 我们记b[0] 阅读全文
posted @ 2019-10-21 21:56 NotNight 阅读(392) 评论(0) 推荐(1)
摘要:Long Colorful Strip 感觉还是一个比较难的区间dp 贴个官方题解 阅读全文
posted @ 2019-10-17 15:33 NotNight 阅读(253) 评论(0) 推荐(0)
摘要:DFS 考虑dfs的非树边全部都是反祖边, 对于新加的一条边那么所有它一定是一条反祖边, 那么用线段树把 对于这条边不可行的点全部ban掉就好了。 阅读全文
posted @ 2019-10-17 14:52 NotNight 阅读(195) 评论(0) 推荐(0)
摘要:Yet Another LCP Problem 把sa求出来之后, 对于每个询问用单调栈处理。 阅读全文
posted @ 2019-10-16 13:59 NotNight 阅读(143) 评论(0) 推荐(0)
摘要:Coloring Game 我写的复杂度是 1000 * 64 * 64 * 64 * log(1e9), 感觉这个东西是很好想的, 肯定是T了的。 其实可以优化掉一个64, 就是在转移的时候用64 * 64的矩阵和 64 * 1的答案相邻相乘, 这样就可以优化掉一个64了, 以前好像没有见过这种小 阅读全文
posted @ 2019-07-23 23:10 NotNight 阅读(493) 评论(0) 推荐(0)
摘要:Culture Code 排完序之后dp。 dp[ i ] 表示 i 作为最里面一层的最小花费。 way[ i ] 表示得到最小花费的方案数。 然后用Map维护最小值就好了。 阅读全文
posted @ 2019-07-23 11:13 NotNight 阅读(323) 评论(0) 推荐(0)
摘要:Max Mex 感觉好脑洞的一道题啊。 用0 - n - 1的值建线段树, 每个区间维护 l - r 能否在一条路径上, 保存两个端点。 感觉我的第一思路是二分答案, 然后判断那些点是否在一条路径上, 没想到这两条路径也能合并, 这样就能用线段树维护了。 合并两条路径枚举合并之后的两端点, 暴力判。 阅读全文
posted @ 2019-07-11 12:27 NotNight 阅读(295) 评论(0) 推荐(0)
摘要:The Fair Nut and Rectangles 很裸的斜率优化呀。 维护直线 维护凸包 阅读全文
posted @ 2019-07-10 15:13 NotNight 阅读(245) 评论(0) 推荐(0)
摘要:Meeting He 感觉对这种题好无力啊, 以后这种感觉没有办法一次性dp完成的可以考虑用类似于bellman的方法来求最优值。 阅读全文
posted @ 2019-07-06 20:51 NotNight 阅读(132) 评论(0) 推荐(0)

1 2 3 4 5 ··· 20 下一页