Codeforces
文章平均质量分 78
2013hlq20
没什么好说的
展开
-
CF85D Sum of Medians
操作数nvoid Update(int u) { seg &lch = Tree[u * 2], &rch = Tree[u * 2 + 1]; Tree[u].size = (lch.size + rch.size) % 5; for(int i = 0; i < 5; i++) Tree[u].a[i] = lch.a[i] + rch.a[(i - lch.原创 2015-02-21 23:43:15 · 383 阅读 · 0 评论 -
CF256E Lucky Arrays
在线段树上dp。我无论如何也是想不出来的。我直接说思路吧。就是建一颗[1, n]的线段树,节点域为a[3][3],表示该节点表示的区间首尾分别为x, y时方案数为a[x][y]。叶子节点的a数组的值与于该点的值有关:叶子节点的值z为0时有a[i][j] = (i == j ? 1 : 0),否则只有a[z][z]=1其余为0。那么其它节点的维护可以用如下函数写出:void upda原创 2015-02-22 21:37:59 · 397 阅读 · 0 评论 -
CF258E Little Elephant and Tree
注意到每个操作都是对子树上色,我们先dfs得到dfs序,那么子树u可以表示为区间 [dfn[u], dfn[u] + size[u]) 其中cnt[u]表示子树u的节点数,这样我们就将上色的操作转变成了线段树的区间覆盖。有了dfs序之后,我们就可以再dfs一遍,每到一个节点,就涂色(前提是这个节点有涂色操作),然后统计有多少节点上了色,那么上色数-1就是这个节点的答案。代码很丑的..#in原创 2015-03-16 22:42:49 · 447 阅读 · 0 评论 -
CF534
终于写了一篇div2的题解..我还是很弱A. Exam 题意就是构造一个排列使得相邻两项的差值大于1。 n n >= 4 的情况可以按如下的方式构造 ① n为偶数时我们可以构造出 n-1, n-3, .., 1, n, n-2, .., 2 ② n为奇数时,我们像①那样构造出n-1的排列,最后加上n就行了B. Cove原创 2015-04-13 03:26:29 · 419 阅读 · 0 评论