线段树
文章平均质量分 62
Faithfully__xly
这个作者很懒,什么都没留下…
展开
-
扫描线+线段树 - SOJ#999 纪念碑
传送门Analysis将每个矩形(x1,y1,x2,y2)(x1,y1,x2,y2)(x1,y1,x2,y2)拆成两条线段(x1,y1,y2)(x1,y1,y2)(x1,y1,y2) (x2,y1,y2)(x2,y1,y2)(x2,y1,y2)维护两个指针,按横坐标递增扫描过去遇到线段的时候就进行相应的操作具体来说:把y坐标看作下标,维护一个线段树然后相当于查询区间内的最长未被覆盖...原创 2019-10-27 13:09:20 · 149 阅读 · 0 评论 -
线段树合并 - 永无乡(HNOI2012)
Analysis裸的线段树合并板子题Code#include<bits/stdc++.h>#define in read()#define re registerusing namespace std;inline int read(){ char ch;int f=1,res=0; while((ch=getchar())<'0'||ch>'9') i...原创 2019-08-07 19:15:05 · 136 阅读 · 0 评论 -
线段树分治 - 二分图(BZOJ 4025)
传送门Analysis快来学习学习一个图是二分图的充要条件是不含奇环先按照套路将每条边的影响在线段树上拆做log个区间然后考虑如何快速判断当前状态是否为一个二分图当加边的时候,若(u,v)不连通:一定不会构成奇环,将它加入。若(u,v)已经联通,则不加入这条边,而是查询u和v两点间的距离。若为偶数则加上这条边后会形成奇环。一个奇环不可能分成数个偶环,所以从此以后都不再是二分图。...原创 2019-08-09 09:33:55 · 212 阅读 · 0 评论 -
线段树分治 - 「离线可过」动态图连通性(LOJ121)
传送门Analysis线段树分治入门所谓线段树分治就是先把操作分成logn个连续不相交的区间分别维护信息。最后按线段树从上到下再从左到右的遍历方式一起统计答案。这道题可以按时间建树,每次相当于在一段区间里增加边。这样我们就避免的删边的操作由于每次回溯的时候要撤销本次操作,我们用并查集就不可以路径压缩又因为我们每次都是后加入的先撤销,所以并查集可做,用一个栈记录一下即可总的时间复...原创 2019-08-08 21:07:39 · 349 阅读 · 0 评论 -
NOIP2016提高组DAY1T3 - 天天爱跑步(多种做法持续更新)
图论题找结论Analysis思考,如果一条路径能够被观察员观察,最基本的条件就是观察员在这条路径上那么对于一条路径,我们分别考虑观察员位于x−>lcax->lcax−>lca和y−>lcay->lcay−>lca路径上的情况Case 1如果观察员u位于x−>lcax->lcax−>lc...原创 2019-08-08 17:00:19 · 178 阅读 · 3 评论 -
树链剖分 - 月下“毛景树”(BZOJ 4151)
传送门Ananlysisget 一个新技能如果要处理边权,就把边权移到儿子节点上去,当做点权进行处理修改的时候不修改其lca即可(隔壁dalao说:“这不是常规操作吗……”)然后就是树剖常规操作单点修改,区间覆盖,区间修改,区间最大值维护...原创 2019-01-27 08:36:08 · 196 阅读 · 0 评论 -
1026 - 线段树 - 序列操作[SCOI2010]
传送门分析不错,蛮好的一道题对于操作0,1,我们维护区间覆盖的标记 tag[i]tag[i]tag[i]操作2,我们维护区间取反标记 rev[i]rev[i]rev[i]在区间覆盖的时候,取反标记置为-1在区间取反的时候,直接修改revrevrev操作三就是维护一下区间和即可sum[i]sum[i]sum[i]操作四维护6个值:从左数最多有多少个连续的1从右数最多有多少个连续...原创 2018-10-26 12:41:13 · 110 阅读 · 0 评论 -
1028 - Kruskal重构树+Dfs序+ 树上倍增 - 「BZOJ3551」[ONTAK2010] Peaks加强版
ff原创 2018-10-28 21:31:44 · 164 阅读 · 0 评论 -
1022 - 线段树 - 数学计算 [Tjoi2018](BZOJ 5334)
数学计算Description小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型:1 m: x = x * m ,输出 x%mod;2 pos: x = x / 第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1 的操作至多会被除一次),输出x%modInput一共有t组输入(t ≤ 5)对于每一组输入,第一行是两个数字Q, mod(Q ≤ ...原创 2018-10-22 22:00:02 · 185 阅读 · 0 评论 -
1022 - 线段树 - Siano[PA2015](BZOJ 4293)
[PA2015]Siano描述Description农夫Byteasar买了一片n亩的土地,他要在这上面种草。 他在每一亩土地上都种植了一种独一无二的草,其中,第i亩土地的草每天会长高a[i]厘米。 Byteasar一共会进行m次收割,其中第i次收割在第d[i]天,并把所有高度大于等于b[i]的部分全部割去。Byteasar想知道,每次收割得到的草的高度总和是多少,你能帮帮他吗?输入In...原创 2018-10-22 21:15:19 · 138 阅读 · 0 评论 -
1022 - 线段树 - Rikka with Sequence(HDU 5828)
传送门题意维护区间开方,区间加,区间求和。分析区间开方:对于一个区间,显然在开几次方之后区间的极差会很小,并且对整个区间进行区间加操作对区间的极差并没有什么影响,这个极差随着修改数的增多仍然是单调不增的,也就是说,在对这个区间进行了一个近似于常数的开方操作之后整个区间的极差就不会超过1了。那么可以维护区间最值amax,amin,每次区间开方的时候,先看当前的amax-amin是否不超过1...原创 2018-10-22 18:31:42 · 102 阅读 · 0 评论 -
1016 - 线段树 - 旅馆(BZOJ xxx)
题目描述奶牛们最近的旅游计划,是到苏必利尔湖畔,享受那里的湖光山色,以及明媚的阳光。作为整个旅游的策划者和负责人,贝茜选择在湖边的一家著名的旅馆住宿。这个巨大的旅馆一共有 N (1 <= N <= 50,000)间客房,它们在同一层楼中顺次一字排开,在任何一个房间里,只需要拉开窗帘,就能见到波光粼粼的湖面。贝茜一行,以及其他慕名而来的旅游者,都是一批批地来到旅馆的服务台,希望能...原创 2018-10-16 19:49:48 · 450 阅读 · 0 评论 -
【2018/10/12】校内模拟赛
题一题二题三 分析(题一) 一道模拟题但模拟也是有很多坑的……写出一道题后,一定要自己试很多很多很多组不同的数据比如这道题,几乎我试的每一组数据都找出了我程序的bug,好险~ 分析(题二)好题!!!!应该是和松鼠聚会这道题本质一样的首先我们需要推导出任意两个点(x,y) (a,b)之间能够到达彼此所需要走的最短步数,由于可以斜着走,那么我们肯定会...原创 2018-10-12 20:20:05 · 188 阅读 · 0 评论 -
0817-线段树板子-洛谷P3373
传送门 大致题意:此题涉及区间修改,稍微需要注意一点的地方就是它又有区间乘,又有区间加。所以我们在处理到区间乘的时候要顺带把lazy_add标记也乘以相应的值(程序里是lazya [ ] )注意:用来记录乘的懒标记初值应该为1 代码:#include<cstdio>#include<cstring>#include<cmath&g...原创 2018-08-17 18:01:58 · 157 阅读 · 0 评论 -
0817-线段树板子-洛谷P4145-上帝造题的7分钟2
传送门 大致题意: 支持区间开方(向下取整),区间求和 题解:就是一道线段树的板子题,只是需要明白怎么进行区间开方效率比较高。由于一个数如果对其进行开方大概搞个几次就会变为1,然后就不需要再对其进行开方了(1 再怎么弄也只能是 1)我们怎么用程序实现呢?很简单只需要维护一个区间最大值就好了,如果最大值== 1 ,显然整个区间都可以不往下搞了顺便bibi一句:...原创 2018-08-17 13:13:18 · 150 阅读 · 2 评论 -
0707-线段树+打表-好数
今天来讲讲T3吧好数 题目描述我们定义一个非负整数是“好数”,当且仅当它符合以下条件之一: 1. 这个数是 0 或 1 。 2. 所有小于这个数且与它互质的正整数可以排成一个等差数列,例如,8 就是一个好数,因为 1,3,5,7 排成了等差数列。给出 N 个非负整数,然后进行如下三个操作:1. 询问区间 [L,R] 有多少个好数。2. 将区间 [L,R] 内所...原创 2018-07-09 13:16:29 · 144 阅读 · 0 评论