随笔分类 -  Codeforces

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 20 下一页
摘要:我发现我构造题真的不会写, 想了好久才想出来。。 我们先把n = 2, 所有数字相等, 所有数字等于0的都特判掉。 找到一个b[ i ] > b[ i - 1 ]的位置把它移到最后一个位置, 并且使其a[ i ] = b[ i ]然后从后往前构造。 阅读全文
posted @ 2019-02-23 18:44 NotNight 阅读(114) 评论(0) 推荐(0)
摘要:Ants on a Circle 感觉这个思路好巧妙啊。 我们能发现不管怎么碰撞,初始态和最终态蚂蚁间的相对顺序都是一样的, 并且所占的格子也是一样的, 那么我们就只需要 找到其中一个蚂蚁的最终位置就能确定所有蚂蚁的位置了, 我们考虑找初始为止离0最近的那个蚂蚁的最终位置,我们能发现 蚂蚁从m-1- 阅读全文
posted @ 2019-02-23 15:21 NotNight 阅读(151) 评论(0) 推荐(0)
摘要:Ehab and a component choosing problem 如果有多个连接件那么这几个连接件一定是一样大的, 所以我们先找到值最大的连通块这个肯定是分数的答案。 dp[ i ]表示对于 i 这棵子树包含 i 这个点的连通块的最大值, 就能求出答案, 然后知道最大值之后再就能求出几个连 阅读全文
posted @ 2019-02-23 11:01 NotNight 阅读(222) 评论(0) 推荐(0)
摘要:A - Secret of Chocolate Poles 队友写的。 好像水水的。 //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optimize(4) //#pragma GCC optimize("unrol 阅读全文
posted @ 2019-02-22 21:34 NotNight 阅读(456) 评论(0) 推荐(0)
摘要:Graph Cutting 不会写。。 dfs的过程中把回边丢到它的祖先中去, 回溯的时候两两配对。感觉好神奇啊。 阅读全文
posted @ 2019-02-22 12:32 NotNight 阅读(132) 评论(0) 推荐(0)
摘要:Dima and Trap Graph 枚举区间的左端点, 然后那些左端点比枚举的左端点小的都按右端点排序然后并查集去check 阅读全文
posted @ 2019-02-21 21:49 NotNight 阅读(144) 评论(0) 推荐(0)
摘要:Kleofáš and the n-thlon 我们可以用dp算出比当前这个人得分少的概率, 然后人数乘概率就好啦。 dp[ i ][ j ]表示进行了 i 轮 得分为 j 的概率, 因为每个人都是独立地这样算是可以的, 然后前缀和优化一下。 阅读全文
posted @ 2019-02-21 13:50 NotNight 阅读(247) 评论(0) 推荐(0)
摘要:Cats Transport 出发时间居然能是负的,我服了。。。 卡了我十几次, 我一直以为斜率优化写搓了。 我们能得出dp方程式 dp[ i ][ j ] = min(dp[ k ][ j - 1 ] + hs[ i ] * (cnt[ i ] - cnt[ j ]) - sum[ i ] + s 阅读全文
posted @ 2019-02-20 22:12 NotNight 阅读(194) 评论(0) 推荐(0)
摘要:New Year and Rainbow Roads 思路:我们考虑两个绿点之间的红点和蓝点, 首先把这些红点和蓝点接到绿点上面绝对不会超过绿点距离的两倍。 然后我们先把两个绿点连上, 再把绿点经过蓝点到绿点的线连上, 绿点经过红点到绿点的线连上, 这时距离为3倍的绿点间距离, 然后我们可以在第二条 阅读全文
posted @ 2019-02-20 17:40 NotNight 阅读(163) 评论(0) 推荐(0)
摘要:裸的cdq, 没啥好说的, 要注意mid左边和mid右边的a相同的情况。 阅读全文
posted @ 2019-02-20 14:52 NotNight 阅读(240) 评论(0) 推荐(0)
摘要:Tree-String Problem 网上的dfs + kmp 复杂度就是错的, 除非算出根据下一个字符直接转移Next数组直接转移, 而求出Next[ i ][ 26 ]数组和丢进AC自动机里面没有区别。。 然后我的AC自动机还写麻烦了。。 我把全部都求进去求fail然后沿着fail推到目标串, 阅读全文
posted @ 2019-02-20 13:44 NotNight 阅读(220) 评论(0) 推荐(0)
摘要:Team Work 发现网上没有我这种写法。。 i ^ k我们可以理解为对于每个子集我们k个for套在一起数有多少个。 那么我们问题就变成了 任意可重复位置的k个物品属于多少个子集。 然后我们枚举k个物品所占位置的个数 i , 然后需要计算有多少种方案能把k个不同物品放入i个桶中。 这个东西可以用d 阅读全文
posted @ 2019-02-20 01:44 NotNight 阅读(165) 评论(0) 推荐(0)
摘要:Caisa and Tree 在dfs的过程中枚举质因子瞎搞搞就好啦, 不过这个题意真的表述不清。。 阅读全文
posted @ 2019-02-19 21:43 NotNight 阅读(110) 评论(0) 推荐(0)
摘要:ZS and The Birthday Paradox 感觉里面有好多技巧。。 阅读全文
posted @ 2019-02-19 16:58 NotNight 阅读(107) 评论(0) 推荐(0)
摘要:Anton and Ira 我们把点分为三类, 向左走的, 向右走的, 不动的。 最完美的情况就是每个点没有走反方向。 每次我们挑选最右边的向右走的去把向左走的交换过来,这样能保证最优。 阅读全文
posted @ 2019-02-19 14:36 NotNight 阅读(154) 评论(0) 推荐(0)
摘要:New Year Tree 我们假设当前的直径两端为A, B, 那么现在加入v的两个儿子x, y。 求直径的话我们可以第一次dfs找到最远点这个点必定为直径上的点, 然而用这个点第二次dfs找到最远点, 这两个点就是直径。 因为A, B现在是直径的两端, 那么从v点dfs找到的最远点必定为A或者B, 阅读全文
posted @ 2019-02-19 12:06 NotNight 阅读(142) 评论(0) 推荐(0)
摘要:Lucky Queries 感觉是很简单的区间合并, 但是好像我写的比较麻烦。 阅读全文
posted @ 2019-02-18 21:33 NotNight 阅读(100) 评论(0) 推荐(0)
摘要:LIS of Sequence 我们先找出那些肯定不会再LIS里面。 然后我们从前往后扫一次, 当前位置为 i , 看存不存在一个 j 会在lis上并且a[ j ] > a[ i ], 如果满足则 i 能被省掉。 在从后往前扫一遍就做完啦。 阅读全文
posted @ 2019-02-17 23:00 NotNight 阅读(107) 评论(0) 推荐(0)
摘要:Arthur and Brackets 区间dp, dp[ i ][ j ]表示第 i 个括号到第 j 个括号之间的所有括号能不能形成一个合法方案。 然后dp就完事了。 阅读全文
posted @ 2019-02-17 16:16 NotNight 阅读(101) 评论(0) 推荐(0)
摘要:Information Graph 把询问离线之后就能随便搞了, 去check一下是不是祖先, 可以用倍增也能用dfs序。 阅读全文
posted @ 2019-02-17 14:54 NotNight 阅读(174) 评论(0) 推荐(0)

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 20 下一页