2016-05-28  10:27:19 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3343 比较显然的分块题,分块后块内排序,维护整块的附加信息add 对于操作来说,l,r所在的块暴力,其它块内直接加add,或二分查找大于某个值的数有多少个. 神奇WA update:本傻叉的二分写法太过傻叉,卒于tmp没有赋初值 #include<bits/stdc++.h> #define inf 1000000000 #define N 100…
两个月之前听yyr学长讲的分块,感觉是个很神奇的暴力,但到现在还是懵的一匹 #include<bits/stdc++.h> using namespace std; ; int belong[maxn]; int a[maxn]; int b[maxn]; int d[maxn]; int l[maxn]; int r[maxn]; int p[maxn]; int n,q; int num,block; void build()//预处理块 { block=sqrt(n); num=n/bl…
Brief description 给定一个数列,您需要支持一下两种操作: 给[l,r]同加一个数 询问[l,r]中有多少数字大于或等于v Algorithm analyse 这个题一时想不到什么有效的数据结构,但是暴力法非常好想:一个\(\Theta(n)\)的暴力算法. 我们考虑分块做,不那么暴力. 把数据分为\(\sqrt n\)一份,那么对于每一个查询,我们都可以把这个查询分为\(\sqrt n\)个区间,修改的时候也是\(\Theta(\sqrt n)\)的级别,所以总的复杂度就是\(…
传送门:https://www.luogu.org/problemnew/show/P2801 参考:http://hzwer.com/2784.html  感觉思路无比清晰:) ps:我在洛谷A的,BZOJ要权限: 题意:区间查询有多少个比K的数: 思路:分块,两边暴力更新与查询,中间查询是用二分计数:每次更新,如有必要,要记得重新sort(区间对应的另一个数组): #include <iostream> #include <cmath> #include <cstdio&…
修改:两边暴力重构,中间打标记.复杂度:O(n0.5) 查询:中间二分两边暴力.O(n0.5logn0.5) 总时间复杂度O(n*n0.5logn0.5) 空间复杂度是n级别的 标记不用下传因为标记不用下传也没时间下传,如果在访问时下传就造成更棘手的不整块,如果累加式下传不好记录,所以就带着就行. 细节很多...... #include<iostream> #include<cstdio> #include<algorithm> #include<cmath>…
[BZOJ3343]教主的魔法 试题描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的身高一开始都是不超过1000的正整数.教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W.(虽然L=R时并不符合区间的书写规范,但我们可以认为是单独增加第L(R)个英雄的身高) CYZ.光哥和ZJQ等人不信教主的邪,于是他们有时候会问WD闭区间…
Luogu 2801 教主的魔法 | 分块模板题 我犯的错误: 有一处l打成了1,还看不出来-- 缩小块大小De完bug后忘了把块大小改回去就提交--还以为自己一定能A了-- #include <cstdio> #include <cstring> #include <algorithm> #include <set> using namespace std; typedef long long ll; #define space putchar(' ')…
BZOJ 3343: 教主的魔法(分块+二分查找) 3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1172  Solved: 526[Submit][Status][Discuss] 这个题目为什么不能用线段树做事因为C的值不固定,如果用线段树来做,那么每一个C值要从新建一遍线段树,时间会爆炸的 add操作: 1.同一块暴力修改,然后重构 2.两端不完整的暴力修改重构,中间完整的块加标记 查询操作: 1.同一块暴力 2.两…
题意:维护一个数列,给出维护区间加法,询问区间内大于等于某个值的元素个数. 算法:分块.因为本题第二问显然可以用二分的思想,但是这貌似并不符合区间可加性,线段树好像就不好用了呢.所以本蒟蒻学习了分块. 这大概是本蒟蒻的第一题正式分块,思想是在hzwer学长的分块入门学的==. 什么是分块?我们维护数列(貌似树上也可以)信息时可以先采用分治的思想,把数列分成若干连续的块,维护信息可以统一在块上进行维护.假如有一个n元素的数列,根据均值不等式的数学知识(并不会证明),我们把每个块的大小设为根号n可以…
3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 950  Solved: 414[Submit][Status][Discuss] Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的身高一开始都是不超过1000的正整数.教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内…