线段树
文章平均质量分 53
LauZiyang
exploring
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
和Leo一起做热爱线段树的好孩子[Noi2016]区间
第一这是个签到题(当年的题也就这个还算简单了) 使用尺取法 我想了一下,最大联通子段和就是类似的方法。 我们一直试探下一位,然后当sum<0就从新开始试探 然后我们使用线段树区间覆盖,和区间max就可以查询当前最大值是否有m那么大了 #include<bits/stdc++.h> using namespace std; inline void read(int ...原创 2018-08-21 13:53:49 · 197 阅读 · 0 评论 -
爱线段树的好孩子【九校2D1T3】优美序列
Lxy养了N头奶牛,他把N头奶牛用1..N编号,第i头奶牛编号为i。为了让奶牛多产奶,每天早上他都会让奶牛们排成一排做早操。奶牛们是随机排列的。在奶牛排列中,如果一段区间[L,R]中的数从小到大排列后是连续的,他认为这段区间是优美的。比如奶牛排列为:(3, 1, 7, 5, 6, 4, 2),区间[3,6]是优美的,它包含4,5,6,7连续的四个数,而区间[1,3] 是不优美的。Lxy的问题是:对...原创 2018-10-09 22:50:32 · 6386 阅读 · 0 评论 -
[HAOI2012]高速公路
Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站。 Y901高速公路是一条由N-1段路以及N个收费站组成的东西向的链,我们按照由西向东的顺序将收费站依次编号为1~N,从收费站i行驶到i+1(或从i+1行驶到i)需要收取Vi的费用。高速路刚建成时所有的路段都是免费的。 政府部门根据实际情况,会不定期地对连续路段的收费标...原创 2018-10-18 22:44:05 · 3243 阅读 · 0 评论 -
线段树火车运输
ByteLand火车站(编号0)每天都要发往全国各地N列客运火车,编号1 N。第i列火车的目的地是编号Si的火车站。 对任意车站X,都与X+1车站有铁轨直接相连,因此火车站可以看成数轴上的整数点,第i列火车可以停靠区间[0, Si]中的各个站点。每列火车装载乘客的最大容量为Ci。 有M个人需要乘坐火车。已知每个人的乘车区间为[Li, Ri],即是说,在Li上车,在Ri下车。由于火车的容量限制,请你...原创 2018-09-28 07:32:14 · 3548 阅读 · 0 评论 -
CF487E Tourists
Cyberland 有 n 座城市,编号从 1 到 n,有 m 条双向道路连接这些城市。第 j 条路连接城市 aj 和 bj。每天,都有成千上万的游客来到 Cyberland 游玩。 在每一个城市,都有纪念品售卖,第 i 个城市售价为 wi。这个售价有时会变动。 每一个游客的游览路径都有固定起始城市和终止城市,且不会经过重复的城市。 他们会在路径上的城市中,售价最低的那个城市购买纪念品。 ...原创 2018-09-26 22:04:20 · 966 阅读 · 0 评论 -
线段树【模拟试题】假期旅行
额 set+线段树+st倍增 我好菜啊 这个是三元组,很明显set维护 但是要找到从l开始最远更新值 线段树维护区间最大值 然后建立ST表 倍增快速找到答案 #include<bits/stdc++.h> #include<set> using namespace std; #define lc (p<<1) #define rc (p&...原创 2018-09-19 23:01:53 · 896 阅读 · 0 评论 -
炸弹 线段树优化建边
线段树优化建边好题 但是数据太水了 发现每个炸弹干涉的区间是连续的考虑优化建边 然后明显Tarjan缩点 这里需要发现一个性质 因为对于一张top图寻找从一个点开始到别的点所有siz没有On做法 唯一的比较优的做法是bitset优化的传递闭包 但是这道题不一样 观察发现联通块是连续的所以记录一下向左最远和向右最远 #include<iostream> #incl...原创 2018-09-24 17:29:58 · 755 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子COCI2017-2018被单
一天,Little Donald想要洗干净他的n张被单。洗完所有被单之后,他把它们放在后院的平地上晒干。Donald很好的摆放了这些被单,使得这些被单两两之间不会在端点或边上接触,并且两两之间的边不会相交,但是可能一张更小的被单会放在一张更大的被单上面,或者一张被单会完全覆盖另外一张被单。做完这些事之后,Donald就去睡觉了。然而,Donald的朋友,Kim,知道了Donald正在晒被单并且决定...原创 2018-09-12 21:29:03 · 3430 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子 IOI1998Picture
看来扫描线还是不过关 扫描矩形并的面积还会 轮廓线就不会了 仔细思考一下 首先还是拆矩形 线段树维护区间有几段线段 从下向上扫描把竖的答案扫描了 横的答案是这个区间有多少个值 由于是全局查询不需要标记下发 #include<iostream> #include<cstdio> #include<cstring> #include<c...原创 2018-09-06 22:03:25 · 1805 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子之 HDU 4630 No Pain No Game
神仙线段树系列 陈老师的确出的题个个牛皮 首先我们知道如果一个因数在一段区间出现了两次那么这个因数是一个合法的GCD 注意n不是1e5说明可以暴力查找每个因数 然后维护一个当前因数的上一次出现位置 如果出现了那对上一次出现位置来说是合法的 当然这只是左端点 于是对右端点排序 离线处理 #include<iostream> #include<cstdio&g...原创 2018-09-09 21:15:06 · 832 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子 数据
Mr_H出了一道信息学竞赛题,就是给n个数排序。输入格式是这样的:试题有若干组数据。每组数据的第一个是一个整数n,表示总共有n个数待排序;接下来n个整数,分别表示这n个待排序的数。 例如:3 4 2 –1 4 1 2 3 4,就表示有两组数据。第一组有3个数 (4,2,-1),第二组有4个数(1,2,3,4)。可是现在 Mr_H做的输入数据出了一些问题。例如:2 1 9 3 2 按理说第一组数...原创 2018-09-11 21:29:26 · 5151 阅读 · 0 评论 -
爱线段树的好孩子[POI2014]KAR-Cards
There arenncards arranged on a table in a certain order. Two integers are written on each card, one per side: the obverse and the reverse. Initially all cards lie with the averse facing up. Bytea...原创 2018-09-11 21:10:46 · 6623 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子CTT2012楼房重建
求一个伪LIS 维护斜率 求一个伪的LIS 就是从右到左上升的长度 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iomanip> using namespace...原创 2018-08-25 21:57:20 · 202 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子「FJ2014集训」圆桌会议
线段树维护霍尔定理 有霍尔定理知 l-r+1>=包含在区间内元素个数 所以想到线段树 把r-1移过去 这个时候线段树就在维护键值了 更新找区间最大值就好了 #include<bits/stdc++.h> using namespace std; inline void read(int &x){ x=0; char ch=getchar...原创 2018-08-24 21:40:42 · 1162 阅读 · 0 评论 -
省选专练POI2015Kinoman
小目标:高考假以内,做完POI2015和POI2014的一半怎么搞?实际套路也挺简单的。你看:l,r。这是n*n的算法一般来说1e6 怎么搞是On *✧⁺˚⁺ପ(๑・ω・)੭ु⁾⁾但是Onlogn 却必须得跑过原因是一般来说解决是枚举一个l 或者是中位数。但是必须得log 那么毒瘤卡常数你用一个后向星记录一个 Pre即上一个为Wi 和 Last然后区间更新 Pre i +1 ,i +WiPre(...原创 2018-05-05 19:01:46 · 250 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子FZU2105
经典题 由于异或等操作是不满足结合律的 所以按二进制位拆分 建四棵线段树就转化为区间取反和区间set #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; i...原创 2018-08-20 21:38:06 · 201 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子usaco2008feb-gold
这个本质是求线段树最长的全0区间 实际就是区间set 查询的时候二分查找 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; inline void read...原创 2018-08-20 21:34:10 · 213 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子HDU3308LCIS
维护区间左右端点长度 从左开始最长长度 从右开始最长长度 和本段最长长度 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; inline void rea...原创 2018-08-20 21:30:11 · 198 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子HDU5238 Calculator
额 神仙题 感觉就是一个暴力啊 线段树维护的是一个类似于键值线段树的东西? 每个叶子节点才表示一个操作 而在PushUp的时候合并答案 这个咋合并? 暴力合并。我们记录下当前模意义下所有的答案 然后暴力合并 于是查答案是O1的 然后明显开不下空间 但是考虑到模数的特殊性 于是拆成小质数CRT一下就好了 很完美的把暴力+线段树合并的真实意义+数学结合起来的一道题 #...原创 2018-08-23 14:34:32 · 527 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子HDU1542 Atlantis
扫描线模板题 看来扫描线水平依旧不过硬 本质:求矩形的并 利用扫描线一段一段的扫 实现方式是线段树 注意发现区间是实数问题 离散化 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> usin...原创 2018-08-22 14:04:36 · 196 阅读 · 0 评论 -
省选专练之数学+数据结构 2015年国家集训队测试 奇数国
翻译: 求区间乘积的phi函数值,其中区间中的数的质因数只有60种。带单点修改操作。 明显质因数比较少,勉强可以压一压开一个int64就压住了。 已知 所以易以60的常数求出答案 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include&...原创 2018-08-01 20:57:51 · 319 阅读 · 0 评论 -
省选专练[SDOI2014]旅行
被主席树的标签坑的死去活来2333 总是觉得一颗主席树少了一个标记 你需要维护区间+宗教+权值 所以你需要很多棵线段树 动态开点就好了 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> usin...原创 2018-07-26 15:41:54 · 236 阅读 · 0 评论 -
省选专练 [USACO07OPEN]城市的地平线City Horizon
算法本质:求一堆矩形的交 依旧是扫描线 这里用线段树实现 离散化l,r 线段树维护区间最大值 然后把每个离散键值统计一下(如果没有离散,那个l,r一段是不会不同的) #include<bits/stdc++.h> using namespace std; typedef int INT; #define int long long #define lc (p<...原创 2018-07-17 21:27:47 · 377 阅读 · 0 评论 -
省选专练之数据结构HDU5828
Rikka with Sequence Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situati...原创 2018-07-23 17:45:11 · 311 阅读 · 0 评论 -
省选专练之数据结构小白逛公园
你若会这个题SCOI2018就有20分暴力。。。 维护整个区间和,左区间最大和,右区间最大和就完了。 #include<iostream> #include<cstdio> #define lc (p<<1) #define rc (p<<1|1) using namespace std; const int N=5e5+1000; inl...原创 2018-07-23 13:40:29 · 233 阅读 · 0 评论 -
省选专练 CF500E dmino
首先转换本质:就是把一条序列查最高。故:使用线段树维护区间最大值然后倍增。原型是SCOI2015国旗计划(或者是SCOI2015的那个的原型)#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #define l...原创 2018-04-29 17:26:38 · 239 阅读 · 0 评论 -
省选专练【POI2015】Podzial naszyjnika
辣么这个题可是真难首先利用Hash表判断是否可以用T2则是利用并查集的siz好难啊枚举区间段可以用BIT我实际就没懂#include<bits/stdc++.h> using namespace std; typedef int INT; #define int long long inline void read(int &x){ x=0; int f=1; char ...原创 2018-05-05 19:07:44 · 303 阅读 · 0 评论
分享