
莫队
gjghfd
这个作者很懒,什么都没留下…
展开
-
bzoj2038 [ 2009国家集训队 ] -- 莫队
莫队模板题。转移时O(1)维护一下总方案数与相同颜色方案数就可以了。代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 50010 8 #define ll long long 9 struct Node{10 int l,r,f原创 2017-05-26 16:42:48 · 190 阅读 · 0 评论 -
[ 莫队 哈夫曼树 ] Codeforces700D Huffman Coding on Segment
莫队。每次询问不断将值小于 n−−√n\sqrt n 的合并,剩下的用构建哈夫曼树的方法来做就可以了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=100010;struct Node{ int l,r,id;}c[N];int k,n,m,S,L=1,R;...原创 2018-02-26 14:33:02 · 287 阅读 · 0 评论 -
[ 带修改莫队 ] Codeforces940F Machine Learning
直接上带修改莫队。维护 mexmexmex 只需要对权值分块,每块记录出现次数,查询时找到第一个有数没出现过的块,然后在块中枚举。#include<bits/stdc++.h>using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2...原创 2018-02-26 07:22:27 · 501 阅读 · 0 评论 -
[ 莫队 树状数组 ] [ AHOI2013 ] BZOJ3236
%%%PBS大佬教我莫队cmp函数更快的写法。#include<bits/stdc++.h>using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:原创 2017-12-01 20:18:12 · 1401 阅读 · 0 评论 -
[ 莫队 配对堆 ] BZOJ4241
%%%PBS教我打配对堆将set改成配对堆快了6倍。。#include<bits/stdc++.h>#include<ext/pb_ds/priority_queue.hpp>using namespace std;using namespace __gnu_pbds;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf;原创 2017-12-25 16:10:24 · 316 阅读 · 0 评论 -
[ 莫队 ] [ YNOI2017 ] BZOJ4866
能形成回文串的条件是出现奇数次的字母至多有一个。 然后记一下每种状态出现次数,莫队就好了。 卡了2个小时常数,最后加了个优化才过。。#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;inline char nc(){原创 2017-12-20 18:24:21 · 346 阅读 · 0 评论 -
bzoj2120&&2453 -- 带修改莫队
待修改莫队裸题。。。当莫队有修改操作时,只要记录每个询问的时间,在两次询问之间修改就可以了。可以证明时间复杂度是O(n^(5/3))的具体看代码。 代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 10010 8 #define M原创 2017-05-26 16:45:35 · 267 阅读 · 0 评论 -
bzoj4810 [ YNOI2017 ] -- 莫队+bitset
莫队。维护22个bitsetbitset,第一个记录数字是否出现,第二个是第一个翻转后的结果。那么查询差时将第一个左移xx位再与原来的andand一下;查询和时将第一个与第二个左移max−xmax-x的结果andand一下;查询积时枚举每个因数就可以了。 时间复杂度O(nn√+n232)O(n\sqrt n + {n^2 \over {32}})原创 2017-07-05 17:41:51 · 362 阅读 · 0 评论 -
bzoj3289 -- 莫队+树状数组
离线。将大小离散,然后用莫队更新树状数组和答案就可以了。代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 50010 8 #define lowbit(x) x&-x 9 struct Node{10 int l,r,f;11原创 2017-05-26 16:45:07 · 306 阅读 · 0 评论 -
bzoj3809 -- 莫队+分块
题目大意:给出一个序列和m个询问,每个询问求[l,r]中权值∈[a,b]的权值的种类数。由于询问是离线的,考虑莫队。显然可以用修改和查询为O(log2n)的树状数组维护权值种类数,但这种做法的总时间复杂度是O(n*sqrt(n)*log2m),可能会TLE。注意到总共有O(m)个查询、O(n*sqrt(n))个修改,所以可以使用O(sqrt(n))查询、O(1)修改的分块。总时间复杂度为O(原创 2017-05-26 16:42:43 · 318 阅读 · 0 评论 -
[ DP 莫队 ]「2017 山东一轮集训 Day6」LOJ#6074 子序列
题解#include<bits/stdc++.h>using namespace std;const int SZ=1<<25; char nc() { static char buf[SZ],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,SZ,stdin),p...原创 2018-03-13 15:26:50 · 568 阅读 · 1 评论