分块
EnjoyingAC
bugger,写bug爱好者。
展开
-
莫队算法的学习
莫队算法 问题: 给定一个长度为N的序列,然后对M个区间[l,r]进行查询。 解题: 离线区间问题,莫队无敌。 对M个查询按照 l 所属的块号(块的大小为sqrt(N))为第一优先级、r的大小为第二优先级排序。 然后根据当前的区间[L,R]的答案去推导出下一个区间[L’,R’]的答案。 这样,每查询一个区间,需要移动abs(L-L‘)+abs(R-R’)次。 而移动一次的时间复杂度...原创 2018-08-05 10:53:34 · 126 阅读 · 0 评论 -
BZOJ 2038 [2009国家集训队]小Z的袜子(hose)(莫队)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2038 题目 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意...原创 2018-08-05 13:13:00 · 159 阅读 · 0 评论 -
HDU 5412 CRB and Queries 分块 动态区间第k大
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5412 题意 给定一个序列a[1..N],然后有M个操作。 1 x y:将第x个元素的值改为y 2 x y k:输出[x,y]的第k大元素 解题 不会主席树套树状数组。 用分块水一水。 维护块内有序。 对于查询区间第k大的话,二分答案key。如果key在区间[x,y]中有不少于k个元...原创 2018-08-06 21:26:54 · 281 阅读 · 0 评论 -
分块算法的学习
分块 将区间长度为n的数组分成sqrt (n)个块,每块的大小是sqrt (n)。 对区间[L,R]进行操作: 如果在一个块里面,暴力更新即可。O(sqrt n)级别。 不在一个块里面: 开头一部分,暴力更新,O(sqrt n)级别。 结尾一部分,暴力更新,O(sqrt n)级别。 中间连续的块,打一个延迟标记,不用更新到具体的点,O(sqrt n)级别。 b站链接:https:/...原创 2018-08-02 18:41:23 · 170 阅读 · 0 评论 -
bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊 (分块)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2002 题目 Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到...原创 2018-08-03 08:53:46 · 120 阅读 · 0 评论 -
ACdream 1738 世风日下的哗啦啦族I(分块)
题目链接 https://vjudge.net/problem/204321/origin 题目 “世风日下啊,女生不穿裙子的太少了” “这不是社会的进步吗(逃” “哎,是否可以建立一种结构统计一下各学院各专业各班级女生穿裙子的数量以及裙子的长度” “然后查询区间裙子最短值?” “并输出这个区间 穿这个裙子长度的妹子 有多少个?” “然后判断下在有风的情况下,多少妹子是安全的.” ...原创 2018-08-03 10:13:04 · 133 阅读 · 0 评论 -
BZOJ 3343 教主的魔法 (分块)
题目 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1、2、……、N。 每个人的身高一开始都是不超过1000的正整数。教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W。(虽然L=R时并不符合区间的书写规范,但我们可以认为是单独增加第L(R)个英雄的身高)...原创 2018-08-03 10:19:40 · 138 阅读 · 0 评论 -
51nod 1287 加农炮 (分块直接莽)
题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1287 题意 一个长度为M的正整数数组A,表示从左向右的地形高度。测试一种加农炮,炮弹平行于地面从左向右飞行,高度为H,如果某处地形的高度大于等于炮弹飞行的高度H(A[i] >= H),炮弹会被挡住并落在i - 1处,则A[i - 1] + 1。如果...原创 2018-09-10 18:56:25 · 176 阅读 · 0 评论