线段树
蓝丶星灬
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
D-Integers Have Friends [ Codeforces Round #736 (Div. 2) ] 线段树 滑动窗口
链接:https://codeforces.com/contest/1549/problem/D有大坑,当n等于1时无法构造b数组,线段树l=1,r=0,会出问题必须特判掉1#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+10;ll t[maxn*4];ll a[maxn];ll b[maxn];void pushup(int rt){ t[rt]=_原创 2021-08-17 20:24:34 · 143 阅读 · 0 评论 -
E-Boring Segments [ Educational Codeforces Round 112 (Rated for Div. 2) ] 尺取 线段树
链接:https://codeforces.com/contest/1555/problem/E题意:在数轴上给3e5条从l到r权为w的线,要求选择其中一些线,将1 ~ m完全覆盖。要求输出选择方案中 max与min权值 之差 最小的结果。题解:用线段树维护覆盖的区间设置尺取选中范围l与r按w从小到大排序,依次将区间加入线段树,也就是r不断右移如果出现符合条件的情况,就记录当前的大小差值并且将l持续右移,同时将区间从线段树中移除,直至不符合为止取大小差值的min即可过程有点像扫描线(个原创 2021-08-17 16:04:01 · 127 阅读 · 0 评论 -
F-xay loves trees [2021牛客多校7] DFS序 树上滑窗
链接:https://ac.nowcoder.com/acm/contest/11258/F题意:给两棵树,要求找一个最大点集,满足以下条件。1.在第一棵树上连续,且任意两点必有一点是另一个的祖先。2.在第二课树上任意两点都不能是对方的祖先。输出最大点集元素数题解:(不是标程,只是觉得这种办法很妙,写个题解记录一下)用树上滑块做,初始ans=1,令滑块长度为2,如果找到2的答案,更新ans并使滑块长度变为3整个过程中滑块长度不会减少,所以复杂度每个点只会进出队列一次,复杂度on先在第二个树原创 2021-08-08 12:52:26 · 215 阅读 · 0 评论 -
H-Hopping Rabbit [ 2021牛客多校6 ] 扫描线
链接:https://ac.nowcoder.com/acm/contest/11257/H题意:有1e5个矩形,坐标范围±1e9,现在给出一个点列,横纵坐标间距为d(1e5),要求找到一个固定点,使得所有点都不在矩形内部。题解:将所有矩形%d之后,让矩形落到(0,0)到(d,d)的区块,但是有可能有的矩形与(0,0)到(d,d)的区块相交,那就按照相交的线把矩形拆分成2个或者4个。然后使用扫描线,线段树维护区间最小值,如果扫到一条线上区间最小值为0,则说明这里有空出来的位置,扫一遍这条线,获取到原创 2021-08-03 16:29:53 · 247 阅读 · 0 评论 -
B-找山坡 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)
B-找山坡 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)母牛哥在电脑面前坐久了,想站起来看看窗外的小山坡,于是就想出了这个问题:给定一个大小为n的数组a,序号从1开始,计算:max{ R - L | 1 <= L <= R <= n, a[L] == a[R], 对于所有i (L <= i <= R), 满足a[i] >= a[L] }.也就是找到两个坐标,这两个坐标的值相等,并且他们之间的值都大于等于这两个坐标上的值.这两个坐标相减最大能原创 2021-03-29 15:39:32 · 229 阅读 · 0 评论
分享