莫队
Lynstery
一只蒟蒻
展开
-
[莫队] BZOJ2038: [2009国家集训队]小Z的袜子(hose)
题意给出n个数字m次询问,每次询问在区间[li,ri][li,ri][li,ri][li,ri]之间任选两个数字相等的概率是多少.(n,q<=50000)题解莫队模板题。 所谓莫队其实就是个高逼格的暴力,想法特别简单,不赘述了。 对于这题,我们设sum[i]表示区间[L,R]中i出现次数,则概率为: ∑C(sum[k],2)C(R−L+1,2) \frac{\sum C(sum[k],2)}{原创 2017-04-21 08:02:17 · 438 阅读 · 0 评论 -
[树上带修莫队] BZOJ3052: [WC2013]糖果公园
题意题解树上带修莫队经典题。 有了前面的铺垫:普通带修莫队和普通树上莫队,这题就不在话下了。 答案和走的顺序无关,只和每种糖果吃到几次有关,显然可以O(1)移动维护。 然后就没有然后了……树上带修莫队即可。 这题有点常数问题,在UOJ上被卡了半天90分。最后把块大小调小一些就过了。 好像实际情况下带修莫队块大小不一定是n2/3n^{2/3} 最优,个人感觉稍微调小一点可能效果更好。#inc原创 2017-05-11 21:23:26 · 727 阅读 · 0 评论 -
[树上莫队] SPOJ COT2 Count on a tree II
题意给定n个节点的一棵树,每个节点上都有一个数字。 m次询问,没次求u到v的路径上有几种不同的数字。题解树上莫队经典题。 首先要会树分块,见bzoj1086: [SCOI2005]王室联邦。 与普通莫队类似,记dfn[x]为x的入栈时间戳,我们按(belong[U], dfn[V])排序所有询问。 显然分块完后属于同一块的最远点对距离不超过块的大小, 而且考虑括号序列,dfn[V]递增的话原创 2017-04-26 18:57:56 · 701 阅读 · 0 评论 -
[带修莫队] BZOJ2120: 数颜色
题意给出一个n个元素的序列a。执行m次操作: 1. Q L R代表询问[L,R]有几种不同的数字。 2. R x y 把第a[x]改为y。题解带修莫队裸题。 怎么搞带修莫队呢?就是加一维时间,然后对L,R都分块。块的大小定为n23n^{\frac{2}{3}} 。 具体来说,先对L分块,对与同一L块中再对R分块。 bool operator < (const data1 &b)con原创 2017-04-27 22:18:36 · 1005 阅读 · 1 评论 -
[莫比乌斯反演+莫队] HDU4676 Sum Of Gcd
反演的过程类似这题 ,得 ∑T=1nϕ(T) cnt[T]2 \sum_{T=1}^n \phi(T)\ cnt[T] ^2 cnt[T]cnt[T] 表示当前区间内是 TT 的倍数的数的个数。 因为有 cntcnt,每次直接求肯定不行,可以想到莫队。移动过程中每次暴力维护 cntcnt 即可。 复杂度理论很大,但实际上能过。#include<cstdio> #include<cmath>原创 2017-09-28 13:08:09 · 474 阅读 · 0 评论 -
[构造 分块] Codeforces #576C. Points on Plane
实际上就是个莫队的思想啊….. 哈夫曼距离就可以看作莫队时移动代价,然后就那样分块地排个序就好了。 过不了就稍微调一调块大小多试几次…#include<cstdio> #include<algorithm> using namespace std; const int maxn=1000005; int n,m,blk,_max; struct data{ int x,y,id;原创 2017-10-25 13:04:21 · 367 阅读 · 0 评论