爱线段树的好孩子
Leo的线段树好菜啊
LauZiyang
exploring
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
和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 · 5123 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子COCI2017-2018被单
一天,Little Donald想要洗干净他的n张被单。洗完所有被单之后,他把它们放在后院的平地上晒干。Donald很好的摆放了这些被单,使得这些被单两两之间不会在端点或边上接触,并且两两之间的边不会相交,但是可能一张更小的被单会放在一张更大的被单上面,或者一张被单会完全覆盖另外一张被单。做完这些事之后,Donald就去睡觉了。然而,Donald的朋友,Kim,知道了Donald正在晒被单并且决定...原创 2018-09-12 21:29:03 · 3407 阅读 · 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 · 880 阅读 · 0 评论 -
和Leo一起做爱字符串/线段树的好孩子CF700E Cool Slogans
这道题愈发加深了我对right集合的理解 也就是endpos集合 endpos集合是指一些可以以这个点结尾的合法集合 而维护使用经典的主席树 按照Parent树从上向下进行树形DP 使用主席树按top序合并pos集合 由于树上路径一定是当前的一个后缀所以必然出现了至少一次 这个时候查询posA-lenA+lenB,posB-1是否存在一个节点 #include<iost...原创 2018-09-07 22:34:56 · 1467 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子之 HDU 4630 No Pain No Game
神仙线段树系列 陈老师的确出的题个个牛皮 首先我们知道如果一个因数在一段区间出现了两次那么这个因数是一个合法的GCD 注意n不是1e5说明可以暴力查找每个因数 然后维护一个当前因数的上一次出现位置 如果出现了那对上一次出现位置来说是合法的 当然这只是左端点 于是对右端点排序 离线处理 #include<iostream> #include<cstdio&g...原创 2018-09-09 21:15:06 · 820 阅读 · 0 评论 -
和Leo一起做爱字符串/线段树的好孩子「TJOI / HEOI2016」字符串
终于做完佳媛姐姐系列 后缀数组+RMQ+主席树 本题求的是两段子串中的LCS 当然LCS是可以用LCP求的 首先建立SA 得到a,b,c,d求出rk-c 二分LCS设查询mid 由于求两个串的LCP是求rk1-rk2的min 建立ST表 利用RMQ查出rkc所能覆盖的区间L,R 这个时候很明显出现在L-R就是合法的 那么易得区间版本查询 建立主席树查询节点即可 #i...原创 2018-09-06 21:56:17 · 2246 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子 IOI1998Picture
看来扫描线还是不过关 扫描矩形并的面积还会 轮廓线就不会了 仔细思考一下 首先还是拆矩形 线段树维护区间有几段线段 从下向上扫描把竖的答案扫描了 横的答案是这个区间有多少个值 由于是全局查询不需要标记下发 #include<iostream> #include<cstdio> #include<cstring> #include<c...原创 2018-09-06 22:03:25 · 1782 阅读 · 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 · 189 阅读 · 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 · 1148 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子HDU1542 Atlantis
扫描线模板题 看来扫描线水平依旧不过硬 本质:求矩形的并 利用扫描线一段一段的扫 实现方式是线段树 注意发现区间是实数问题 离散化 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> usin...原创 2018-08-22 14:04:36 · 190 阅读 · 0 评论 -
和Leo一起做爱线段树的好孩子HDU5238 Calculator
额 神仙题 感觉就是一个暴力啊 线段树维护的是一个类似于键值线段树的东西? 每个叶子节点才表示一个操作 而在PushUp的时候合并答案 这个咋合并? 暴力合并。我们记录下当前模意义下所有的答案 然后暴力合并 于是查答案是O1的 然后明显开不下空间 但是考虑到模数的特殊性 于是拆成小质数CRT一下就好了 很完美的把暴力+线段树合并的真实意义+数学结合起来的一道题 #...原创 2018-08-23 14:34:32 · 504 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子[Noi2016]区间
第一这是个签到题(当年的题也就这个还算简单了) 使用尺取法 我想了一下,最大联通子段和就是类似的方法。 我们一直试探下一位,然后当sum<0就从新开始试探 然后我们使用线段树区间覆盖,和区间max就可以查询当前最大值是否有m那么大了 #include<bits/stdc++.h> using namespace std; inline void read(int ...原创 2018-08-21 13:53:49 · 182 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子「LibreOJ β Round #2」计算几何瞎暴力
YMH在一个月之前写了这个题 当时我不知所云 现在看来数据结构水平还是在提升的。QwQ 最先想的线段树二进制拆分 但是似乎不行,因为排序不行 这个时候可持久化字典树横空出世:他里面的数本身有序 有可以支持异或(交换左右儿子就好了) 然后对于还没有排序的 维护二进制前缀和,暴力算是log的 然后就完了 #include<bits/stdc++.h> using ...原创 2018-08-20 21:43:47 · 265 阅读 · 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 · 176 阅读 · 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 · 195 阅读 · 0 评论 -
和Leo一起做热爱线段树的好孩子FZU2105
经典题 由于异或等操作是不满足结合律的 所以按二进制位拆分 建四棵线段树就转化为区间取反和区间set #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; i...原创 2018-08-20 21:38:06 · 190 阅读 · 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 · 296 阅读 · 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 · 219 阅读 · 0 评论 -
省选专练[SDOI2014]旅行
被主席树的标签坑的死去活来2333 总是觉得一颗主席树少了一个标记 你需要维护区间+宗教+权值 所以你需要很多棵线段树 动态开点就好了 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> usin...原创 2018-07-26 15:41:54 · 220 阅读 · 0 评论 -
省选专练之数学+数据结构 2015年国家集训队测试 奇数国
翻译: 求区间乘积的phi函数值,其中区间中的数的质因数只有60种。带单点修改操作。 明显质因数比较少,勉强可以压一压开一个int64就压住了。 已知 所以易以60的常数求出答案 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include&...原创 2018-08-01 20:57:51 · 295 阅读 · 0 评论
分享