BZOJ 2141 分块 线段树】的更多相关文章

思路: a[i] //By SiriusRen #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N=20050; int n,m,cpy[N],h[N],u,Block,block[N],xx,yy,ans; struct BIT{ int tree[N*4]; void insert(int l…
题目链接 本质是维护斜率递增序列. 用分块的方法就是把序列分成sqrt(n)块,每个块分别用一个vector维护递增序列.查询的时候遍历所有的块,同时维护当前最大斜率,二分找到每个块中比当前最大斜率大的那个点.修改的时候只需要修改点所在的那个块即可.复杂度$O(m\sqrt nlogn)$ #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef double db; ; int n,m,h[N],in…
BZOJ 裸的线段树分治+线性基,就是跑的巨慢_(:з」∠)_ . 不知道他们都写的什么=-= //41652kb 11920ms #include <map> #include <cstdio> #include <cctype> #include <vector> #include <algorithm> #define BIT 30 #define gc() getchar() #define MAXIN 500000 //#define…
[BZOJ 4025]二分图(线段树分治+带边权并查集) 题面 给出一个n个点m条边的图,每条边会在时间s到t出现,问每个时间的图是否为一个二分图 \(n,m,\max(t_i) \leq 10^5\) 分析 我们知道一个图是二分图的充要条件是图中不存在奇环.于是可以用边带权并查集维护两点间距离的奇偶性,每次加边的时候,如果新加入的边会产生一个偶环,那加不加这条边都不影响结果,直接跳过:如果加入的边会产生奇环,那么就更新答案. 考虑如何删除一条边.如果我们不路径压缩而是用按秩合并的话,那么可以通…
Description 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Input 第一行n,m. 第二行为n个数. 从第三行开始,每行一个询问l,r. Output 一行一个数,表示每个询问的答案. Sample Input 5 5 2 1 0 2 1 3 3 2 3 2 4 1 2 3 5 Sample Output 1 2 3 0 3 HINT 数据规模和约定 对于100%的数据: 1<=n,m<=200000 0<=ai&l…
显然最优走法是先一直停在初始位置然后一次性走完一圈.将序列倍长后,相当于找一个长度为n的区间[l,l+n),使其中ti+l+n-1-i的最大值最小.容易发现ti-i>ti+n-(i+n),所以也就相当于是后缀最大值最小.设ti-i=ai,即要求min{l+max{al..2n}}+n-1 (l=1..n).如果没有修改的话只要扫一遍就行了. 线段树看起来很难维护,考虑分块.每一块求出仅考虑该块的ai时上述值的前缀min和ai的后缀max.对于查询,从后往前考虑所选区间左端点在哪一块.如果该块某个…
数列(seq) Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1157 Description 给出一个长度为n的数列A.现有如下两种操作: 修改操作:把数列中第i个数改为x 询问操作:给定一个位置i,问数列中有多少个位置j ( j>i ),满足位置i与位置j间所有的数都不超过Ai与Aj的较大值. 现共有m个操作,请对每个询问操作做出回答. Input 第一行两个正整数n.m.…
59  懒惰的奶牛贝西所在的牧场,散落着 N 堆牧草,其中第 i 堆牧草在 ( Xi,Yi ) 的位置,数量有 Ai 个单位.贝西从家移动到某一堆牧草的时候,只能沿坐标轴朝正北.正东.正西.正南这四个方向移动,所以计算贝西和牧草间的距离时,应采用"曼哈顿距离"-- (x,y ) 和 (x ′,y ′) 之间的距离为|x − x ′ | + |y − y ′ |.例如贝西的家在 (0.5, 0.3),有一堆牧草在 (3, 2),那么它们之间的距离就是 4.2.贝西懒得走动,她想请你为它寻…
4025: 二分图 题意:加入边,删除边,查询当前图是否为二分图 本来想练lct,然后发现了线段树分治的做法,感觉好厉害. lct做法的核心就是维护删除时间的最大生成树 首先口胡一个分块做法,和hnoi2016第一题类似的偏序关系,一样做. 线段树分治 数据结构题中如果使用对时间cdq分治,要求每个操作独立,不能很好的处理撤销(删除)操作. 采取线段树区间标记的思想 对于一个操作,它的存在时间是\([l,r]\) 我们模仿线段树打标记的过程进行分治,\(cdq(l,r,S)\)表示当前处理时间\…
卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一样美丽的花.所以卿学姐家的后院有很多的花坛. 卿学姐有\(n\)个花坛,一开始第\(i\)个花坛里有\(A[i]\)朵花.每过一段时间,卿学姐都会在花坛里种上新的花. 作为一个聪明的学姐,卿学姐的种花方式也是与众不同 , 每一次,卿学姐会在第\(x\)个花坛种上\(y\)朵花,然后在第\(x+1\)…