莫队算法
Facico
生命是闪耀的此刻,不是过程,就像芳香不需要道路一样。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【GDKOI2014】小纪的作业题
DescriptionSolution会超时!要快速询问一段数中某个数出现的次数,又不要求在线,显然用莫队算法啊。 一开始打的很顺利,交上去只有50分TAT。 发现用了很多次快速幂,哦,原来如此!我只统计了次数,然后用快速幂进行加减,不慢才怪呢! 然后我再统计每个数对答案的贡献,再进行乘除操作就可以了。预处理逆元但是除以一个数再%需要用到逆元啊,啊啊啊啊啊…… 但是预处理每个数对于10000原创 2016-06-25 14:51:56 · 1140 阅读 · 0 评论 -
Mato的文件管理
DescriptionMato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号。为了防止他人偷拷,这些资料都是加密过的,只能用Mato自己写的程序才能访问。Mato每天随机选一个区间[l,r],他今天就看编号在此区间内的这些资料。Mato有一个习惯,他总是从文件大小从小到大看资料。他先把要看的文件按编号顺序依次拷贝出来,再用他写的排序程序给文件大小排序原创 2016-06-26 15:53:37 · 1600 阅读 · 3 评论 -
树状数组复习小计
简介其实我以前以为树状数组是一个很没用的东西,今天一看才发现可以干很多事情。 树状数组详细是什么我就不说了,网上还有很多资料。大致就是,每个点x的父边连向的点都是x+lowbit(x)。lowbit(x)=-x and x,就是把x末尾的1变成0并向上推一位,比如lowbit(100)=1000,lowbit(10101)=10110,lowbit(11000)=100000。 (只能看看手打图原创 2016-06-26 16:39:06 · 1778 阅读 · 0 评论 -
【NOIP模拟】旷野大计算
Description**Solution这是一道套路题,不过我现在才学会套路。 对于莫队算法,进队统计答案很快,出队统计答案很慢的情况有一个套路:把所有的出队变成进队,每次询问的[l,r],把l放到l所在的块的末尾为l’,然后把l到l’-1的都入队,更新答案,因为右端点是递增的,所以右边就逐个进队就好了,然后结束的时候就把l’到l-1退队。每次l换块的时候,就把所有的数据暴力重构。Code#in原创 2016-09-09 18:12:41 · 2012 阅读 · 0 评论 -
【雅礼联考GDOI2017模拟9.2】Ztxz16学图论
Description众所周知,Zjr506是算法之神,因此Ztxz16经常向他请教算法。这一天,Zjr506在教导了Ztxz16关于图论方面的一些算法后,给他出了一道图论题作为家庭作业: 给定N个点,M条无向边,Q个询问,每个询问给定L, R,问连上第L~R条边后,图中有多少联通块(询问之间互不影响)。 Ztxz16智商太低,百思不得其解,只好向你请教这个问题。Solution用LCT做的把模原创 2016-09-03 22:08:33 · 1367 阅读 · 3 评论 -
【51 Nod 1203】JZPLCM
Description长度为N的正整数序列S,有Q次询问,每次询问一段区间内所有数的lcm(即最小公倍数)。由于答案可能很大,输出答案Mod 10^9 + 7。 例如:2 3 4 5,询问[1,3]区间的最小公倍数为2 3 4的最小公倍数 = 12。Solution一段数的最小公倍数中每个质数的指数就是这段数的这个质数出现的最大次数。 那么现在的问题就是怎么去维护一个质数的最大出现次数。 有很原创 2017-02-07 17:20:36 · 746 阅读 · 0 评论 -
【GDOI2017第二轮模拟day1】公路建设
Description在Byteland一共有n 个城市,编号依次为1 到n,它们之间计划修建m条双向道路,其中修建第i 条道路的费用为ci。 Byteasar作为Byteland 公路建设项目的总工程师,他决定选定一个区间[l, r],仅使用编号在该区间内的道路。他希望选择一些道路去修建,使得连通块的个数尽量少,同时,他不喜欢修建多余的道路,因此每个连通块都可以看成一棵树的结构。 为了选出最佳原创 2017-04-16 09:32:48 · 948 阅读 · 0 评论 -
【NOI模拟】维护队列
Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N。为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少。当然,A有时候会依据个人喜好,替换队列中某个弹珠的颜色。但是A还没有学过编程,且觉得头脑风暴太浪费脑力了,所以向你来寻求帮助。Solution待修改的莫队算法,裸体! 待修改的莫队算法 有道原题【uva123原创 2016-07-09 21:01:33 · 1103 阅读 · 0 评论 -
【uva12345】Dynamic len
Description有n个数编号从0→n-1,两种操作: Q L R:询问编号为L→R-1的数中共有多少种不同的数 M X Y:将编号为X的数改为Y 共有m个操作Solution一开始满脸懵逼……后来才发现是待修改莫队。方法1树套树,很裸啊!码力要求大!方法2类似暴搜,用分块来做,速度快,细节有些多。方法3待修改的莫队算法,很裸,有些快,代码短。 我选了它。 不会的参见待修改的莫队算法学原创 2016-07-08 19:19:31 · 1406 阅读 · 0 评论 -
带修改的莫队算法学习小记
简介莫涛大神创造出的离线询问算法的带修改版。 算法基础:需要掌握莫队算法,会打暴搜(暴力)。 一个叫莫的双端队列。 只支持单点修改操作方法普通的不带修改的莫队算法要把每个询问带上两个关键字排序,现在待修改的莫队算法要带上三个关键字排序。初始操作fo(i,1,m) { scanf("%s%d%d",s,&k,&l); if (s[0]=='Q')a[++tot].原创 2016-07-10 09:15:21 · 6114 阅读 · 4 评论 -
【2010集训队出题】小Z的袜子
Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z原创 2016-05-07 22:44:22 · 1951 阅读 · 2 评论
分享