莫队算法
撒旦即可
研究CV的菜狗
展开
-
HDU5381(莫队算法+ST维护)
解题思路:写了两个小时才写出来,代码能力还有待加强。这道题一开始使用ST表进行维护,用于查询区间范围内的gcd值。但是莫队算法移动一格还有很多区间gcd累加的,要是一个个加必定超时。但是我们可以看出在一定范围内有不少区间的gcd值是一样的,不必一个个数,所以用二分搜索的方式查找,复杂度为O(logn)。我一开始没有事先记录下vl和vr(相同节点),而是要用的时候再查询,这样,复杂度就变成O(log...原创 2019-04-03 23:24:22 · 279 阅读 · 0 评论 -
HDU3874(莫队算法,模板)
题意:给定一个数组,每次询问一个区间[l, r],求区间内所有数字的和,出现多次的数字只加一次 解题思路:莫队算法就适用于这种区间问题,且临近点转移比较方便的情况。复杂度最大应该也有O(M *sqrt(n)),但总比暴力的O(MN)要好。 #include<cstdio> #include<cstring> #include<cmath> #include...原创 2019-03-28 00:14:29 · 220 阅读 · 0 评论 -
HDU4638(莫队算法,讲解)
解题思路:第一次做莫队算法,推荐博客https://www.cnblogs.com/Paul-Guderian/p/6933799.html入门。 结合上面那片博客,我先讲一下自己对莫队算法时间复杂度的理解。首先我们将一个block设为sqrt(n) ,n为数列的长度。然后按提的问题的区间进行排序,排序的规则是: 这么做的目的是使L和R指针的移动复杂度尽可能相等。 1.首先对L的移动复杂...原创 2019-03-27 22:37:31 · 163 阅读 · 0 评论 -
2019湘潭邀请赛 Chika and Friendly Pairs(莫队+树状数组)
解题思路:莫队的复杂度O(mlogn),然后更新,查询树状数组的复杂度O(logn),最终复杂度O(mlog^2n) #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define N 27005 using namespace std; struct ...原创 2019-05-22 22:35:51 · 266 阅读 · 0 评论