Icefox的博客

生活不止眼前的苟且,还有诗和远方。

bzoj3236 [Ahoi2013]作业(莫队+分块)

对查询莫队处理,查询区间和分块处理。 复杂度O((n+m)n−√)O((n+m)\sqrt n) 如果用莫队+BIT的话,复杂度是O(nn−√logn)O(n\sqrt nlogn) 其实也是树套树裸题?O(nlog2n)O(nlog^2n)

2018-04-22 19:34:20

阅读数:69

评论数:0

bzoj1878 [SDOI2009]HH的项链(离线+树状数组/莫队)

这题首先在线是没法做的,所以我们可以考虑离线算法 首先记录下每种颜色的下一种颜色所在的位置 将所有询问按照左端点进行排序 将所有颜色的第一个点x a[x]++ 然后从左往右扫 扫到一个点x将a[next[x]]++ 碰到一个询问l,r输出sum[r]-sum[l-1] 其中sum是a...

2018-01-10 17:27:37

阅读数:123

评论数:0

bzoj4358 permu(莫队+线段树||莫队+并查集+分块||K-D tree)

很久以前的坑=,= 题意:给你一个排列序列,每次询问问l,r区间内最长的值域连续段长度。范围50000,长得就像莫队-,-。怎么转移呢,首先有一个比较明显的做法,用数值建一棵线段树,维护最大子段和。这样的复杂度是(nn−√logn)(n\sqrt nlogn)的,但是常数巨大,不太好卡过去。。。按...

2017-08-03 11:55:50

阅读数:418

评论数:0

CF 86D Powerful array(莫队)

挺裸的莫队,然而我用lld输出T掉了???改成I64d输出就过了???有毒。 #include #include #include #include #define ll long long #define N 200010 int n,m,a[N],f[1000005],block; ...

2017-07-26 12:37:03

阅读数:173

评论数:0

bzoj3809 Gty的二逼妹子序列(莫队+分块)

很显然的做法是莫队+树状数组,但是我T了。。是我姿势不对么。。。可能常数起飞了吧。。比较好的方法是莫队+分块。对权值分块。那么每个询问就变成了求区间和,可以在O(sqrt(N))解决,而每次莫队的转移则变成了O(1),那么总的复杂度就是O((N+M)*sqrt(N))了,可以过。至于分块大小,我试...

2017-07-23 13:10:44

阅读数:176

评论数:0

bzoj3052 [wc2013]糖果公园(树上莫队,带修改)

树上莫队参见spoj_cot2,带修改莫队参见bzoj2120.这道题就是把这俩和在一起了╭(╯^╰)╮。bzoj上时间很宽松。。大家如果没把握还是不要去爆oj了的好。给大家推荐个好地方UOJ,这题的题号是58。可以先在那过了再说。。uoj的评测机好好的说。。顺便我树上莫队也是从建了uoj的vfk...

2017-07-21 21:19:46

阅读数:316

评论数:0

bzoj3781 小B的询问(莫队)

赤裸裸的莫队。 #include #include #include #include #define N 50005 using namespace std; int n,m,k,a[N],f[N],ans=0,block=0,ANS[N]; inline int read(){ i...

2017-07-20 16:53:39

阅读数:156

评论数:0

CF 700D Huffman Coding on Segment(huffman编码分块+莫队)

题意:给定一段序列a,q个询问l,r, 求a[l]..a[r]的huffman编码长度。首先huffman编码长度怎么算呢。。其实就是以每种字符出现的次数为点权,建一棵huffman树,边权为1,它的WPL其实就是这段字符huffman编码的长度。所以我们就用莫队维护一下每个字符出现的次数啦,然后...

2017-07-20 16:12:47

阅读数:209

评论数:0

CF 375D Tree and Queries(子树询问,转化为序列莫队)

题意:给定一棵树,每个点有颜色,m个询问vi,ki,问以vi为根的子树中有多少种颜色出现的次数>=ki。首先我们可以通过dfn把子树询问变成序列询问。(不会看代码,一颗子树中的顶点的dfn一定是连续的,画画就知道了)然后就是经典的莫队了,至于ans怎么更新,见代码啦~

2017-07-20 16:02:15

阅读数:157

评论数:0

spoj_cot2 Count on a tree II(树上莫队+离散化)

题意:给两个点u,v,询问两点路径上有多少种不同的权值。树上莫队。然后权值要离散化。树上区间转移呢,基本就是这样的:记上次询问的两点为lastu,lastv,现在询问的两点为u,v,那么对于路径(lastu,u)上的所有点的存在性取反(就是原来答案里有就删掉,没有就加上),对于(lastv,v)同...

2017-07-20 15:30:12

阅读数:267

评论数:0

bzoj3289 Mato的文件管理(树状数组求逆序对+莫队+离散化)

首先明确,求交换次数最小其实就是求逆序对的个数。可以用树状数组方便地进行求解。然后题目没说文件大小的范围,我们就赶紧怕怕的采取了离散化。我们还发现这题可以O(logn)的由[l,r]=>[l-1,r]等等。。所以,莫队,就是你啦!具体细节见代码。 #include #include #...

2017-07-19 16:41:11

阅读数:186

评论数:0

bzoj2120 数颜色(莫队)

带修改的莫队板子。听说按n^ 2/3分块更快??其实无非就是多了个修改,我们为每一个询问打上一个时间戳。然后照做无误就好了。只是在每一次做之前,先看看时间戳对不对。。不对的就给他暴力改对。所以对每一个修改我们要记该位置改之前和改之后是什么样子的。。 #include #include #in...

2017-07-19 16:34:47

阅读数:130

评论数:0

spoj D-query (莫队)

查一段区间出现的不同数字个数,赤裸裸的莫队。 网上那些spoj的题号都是哪来的。。我怎么找不到题号呢。。 #include #include #include #include #define ll long long #define M 200005 using namespace ...

2017-07-19 16:07:32

阅读数:141

评论数:0

bzoj4542 [HNOI2016]大数(莫队+离散化+数学)

首先有一个性质:如果A*10^k+B=B(mod p),且p和10^k互质,则A%p=0。 那么,要判断一个s[l...r]是否是p的倍数,只要判断s[l...n]和s[r+1...n]在模n的意义下是否相等。 于是,我们可以预处理出每一个后缀s[i...n]对p取模的结果a[i]。然后对于一...

2017-07-19 15:38:29

阅读数:159

评论数:0

bzoj2038[2009国家集训队]小Z的袜子(hose)(莫队板子)

给定序列a[1]~a[n],a[i]表示i的颜色,多次询问区间L~R中选出两个位置颜色相同的概率 N,Q 若我们已知L~R区间出现的颜色为c1~ck,次数cnt1~cntk 概率表达式? 若我们已知[L,R]的信息(cnt,P),我们可以O(1)将它更新为[L+1,R]/[...

2017-07-11 14:47:23

阅读数:206

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭