上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 83 下一页
摘要: 嘟嘟嘟 这道题刚开始想lct,但后来发现并没有那么麻烦。 其实就是splay + 启发式合并,同时用并查集维护连通性…… 刚开始每一个节点都属于一个splay以及一个并查集,合并的时候把小的splay拆散,往大的上一个一个添加。 因为每一次splay至少会变大一倍,所以每一个点最多被合并$log n 阅读全文
posted @ 2018-12-25 19:00 mrclr 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这是一道splay基础题。 最坑的一点是,因为有些节点可能没有左儿子或右儿子,所以必须把t[0].Max赋成-INF! 因为这个调了半天,看来回头复习复习splay是对的…… #include<cstdio> #include<iostream> #include<cmath> #inclu 阅读全文
posted @ 2018-12-25 16:18 mrclr 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 看到这种区间问题和最大异或和,我刚开始想到可持久化trie(虽然我不会写)。 但是这道题给的是$b_i$ XOR \((a_j + x_i)\),好像搞不了。 不过大体思路跟普通的最大异或和还是比较像的:我们从高位向低位枚举,如果该位是$0$,就看看有没有$1$。 假设第$i$位是$0$,在 阅读全文
posted @ 2018-12-25 09:20 mrclr 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 看到比值,就想到01分数规划,令$ans = \frac{\sum a_i}{\sum l_i}$,其中$l$表示长度,所以$l_i$都是$1$。 然后变一下型,得到$\sum (a_i - ans) = 0$。这就是01分数规划的标准形式了。 所以我们按套路二分,每一次数组中的元素就是$a 阅读全文
posted @ 2018-12-23 12:27 mrclr 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一看到子串排序,就想办法往后缀数组上靠。 因为后缀数组的排序和长度无关,所以我们把字符串加倍后直接一个后缀排序即可。 然后观察一下输出,其实就是$sa[i]$的上一个字符,所以排完序后如果$sa[i] \leqslant n$就输出$s[sa[i] + n - 1]$即可。 $O(n \lo 阅读全文
posted @ 2018-12-22 11:16 mrclr 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 今天学了一个后缀数组,还是挺好理解的。 因为我不会基数排序,所以只会$O(n \log ^ 2 n)$的sort版。 首先,后缀数组就是把该字符串的所有后缀按字典序排序得到的一个数组。注意这个排序只有字典序一个关键字,跟长度无关。 比如ababa的后缀数组就是:5 3 1 4 2,对应的后缀 阅读全文
posted @ 2018-12-22 10:49 mrclr 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这道题其实还是挺基础的,只不过操作有点多。 区间乘和区间加按线段树的方式想。 那么就先要下放乘标记,再下放加标记。但这两个和反转标记是没有先后顺序的。 对于区间加,sum加的是区间长度$*$lazy标记。但是线段树区间固定,而lct不是,所以还要单独维护一个size。 还有一点,这个是spl 阅读全文
posted @ 2018-12-21 23:07 mrclr 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 lct维护生成树。 其实要是没学lct的话,我觉得是二维spfa,但是没写不知道对不对。 用lct的话,就是先把这些遍按$a$排序,这样我们只用考虑另一维了。 对于边$<x, y>$,如果$x$和$y$不连通,直接Link即可;如果联通,那么就要从$x$到$y$的这条链中Cut一个边权最大的 阅读全文
posted @ 2018-12-21 17:25 mrclr 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 挺好的LCT题。 所以我决定不拿分块水过,按正解写一发。 先新建一个虚拟节点$n + 1$,跳到这个点就说明被弹飞了。 1.建树: $i$向$min { i + k_i, n + 1 }$连边。 2.修改 断掉$i$和$min { i + k_i, n + 1 }$的边,并链接$i$和$mi 阅读全文
posted @ 2018-12-21 11:30 mrclr 阅读(109) 评论(0) 推荐(0) 编辑
摘要: "嘟嘟嘟" 看完题后突然想起jf巨佬的话:“看到曼哈顿距离就想转切比雪夫距离。” 于是我就转换了一下。 然后问题变成了求 $$max_{i, j \in n} \{ max \{ |x_i x_j|, |y_i y_j| \} \}$$ 令差最大,只要分别找出$x, y$的最小值和最大值即可。 $O 阅读全文
posted @ 2018-12-20 22:17 mrclr 阅读(211) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 83 下一页