
莫队算法
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
Codeforces86D【莫队算法】
题意: 给一个序列和一些区间,每次询问对区间所有不同的数,求每个不同的出现的个数的平方*其值的总和 2*2*1+1*1*2 思路: 裸的莫队算法。 补: 1.cmp写错。 2.LL运算不会进行转化。 3.莫队的起始应该直接先处理好L,R。 卡了将近2.5h,水题让自己很生气。以及不会查错误真的撒比! #include using namespace std; typedef原创 2017-02-18 10:20:46 · 576 阅读 · 0 评论 -
HDU5381【莫队算法+区间GCD特性】
NO RESPONSE!原创 2017-02-18 22:36:38 · 1355 阅读 · 0 评论 -
Codeforces617E【莫队算法+前缀异或】
题意: 给出一系列数,对每个查询区间,计算有多少个子区间异或为k。 思路: 可以先预处理异或前缀,一个区间[L,R]的异或值=sum[R]^sum[L-1]; 如果当前区间是[a,b],加一个右端点b+1,那么这个b+1的贡献就是[a,b]区间内有多少个sum[x]=sum[b+1]^k 那么我们可以每次记录num[sum[x]]即num[sum[b+1]^k],并记录num[sum[b原创 2017-02-19 19:49:43 · 1469 阅读 · 0 评论 -
BZOJ3289【莫队算法+树状数组+离散化(附小模板)】
interesting~原创 2017-02-18 00:20:35 · 770 阅读 · 0 评论 -
BZOJ2038【莫队算法】
THE FIRST 莫队算法。 /************************************************************** Problem: 2038 User: keyboarder_zsq Language: C++ Result: Accepted Time:1644 ms Memory:2988 kb *原创 2017-02-17 21:29:12 · 414 阅读 · 0 评论 -
SPOJ3267【莫队算法/】
题意: 求区间不同数的个数。 思路: 离线处理(莫队/分块)#include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<LL,LL>PII;const int N=2e5+10; int n,q; int a[N]; int tim[N];struct asd{ int Left,Ri原创 2017-07-02 16:58:03 · 458 阅读 · 0 评论 -
HDU4358【离散化+DFS序+莫队算法】
思路: 这个DFS序还是蛮有意思的~然后就可以把以u为根的树的状态直接转化到区间(一维数组)上,而且数组是不大的。 然后就变成了区间处理,套一下莫队就好了。 Code:#include<bits/stdc++.h> using namespace std; typedef long long LL;#define mem(a, b) memset(a, b, sizeof(a)) const原创 2017-08-20 14:12:59 · 543 阅读 · 0 评论