莫队算法(Mo's Algorithm)
岩之痕
已停止更新
展开
-
Codeforces 633H. Fibonacci-ish II (Mo's Algorithm(莫队算法) + 线段树 + 离散化)
题意: 给定一个长度最大为3万的序列,和最多3万个询问,每个询问问某区间[L,R]里的数,去掉重复然后排序之后,依次乘上斐波那契数列然后求和,结果对m取余的值。 区间优化用Mo's Algorithm(莫队算法),莫队算法的Add和Remove中使用线段树,所以整体复杂度是O(n*sqrt(n)*log2(n)). 这题一路TLE,从TLE26到TLE27到TLE29到TLE35都快绝原创 2016-03-10 23:55:40 · 2832 阅读 · 1 评论 -
Codeforces 86D. Powerful array (MO's Algorithm(区间查询的离线优化))
题意:给一个长度为n的数组,有 t 个区间询问,求一个特定的值。这个值 = 对区间内出现的每个值v,累加 V 乘上(V的出现次数的平方)。 刚刚学了MO's Algorithm,看文章说这题比较经典,就来做做看了。 MO's Algorithm:就是对于一个区间的询问来说,如果该询问支持Add和Remove(即,区间信息的维护支持加和减),就可以考虑使用这个算法。 假设有N个数,M个原创 2016-03-09 15:04:27 · 1149 阅读 · 0 评论