
数据结构-线段树
garett.
这个作者很懒,什么都没留下…
展开
-
「LeetCode」以组为单位订音乐会门票 线段树二分
原题链接https://leetcode.cn/problems/booking-concert-tickets-in-groups/存个模板,以备不时之需🧐class BookMyShow { public int n; public int m; public MaxSegmentTree t1; public SumSegmentTree t2; public int lastLine=0; public BookMyShow(int原创 2022-05-29 09:36:38 · 191 阅读 · 0 评论 -
「LeetCode」统计区间中的整数数目 动态开点线段树模板
原题链接贴个模板以备以后不时之需 😋class CountIntervals { public SegmentTree t; public CountIntervals() { t=new SegmentTree(1,1000000000); } public void add(int left, int right) { t.change(t.root,left,right); }原创 2022-05-15 12:24:46 · 210 阅读 · 0 评论 -
[LeetCode] 子数组中占绝大多数的元素 线段树+二分+摩尔投票法(Python语言实现)
题面:思路:首先介绍一下摩尔投票法:以上截取自博客。我们可以发现摩尔投票法中每个区间记录的num(表示当前区间的绝对众数)和cnt(等于当前区间绝对众数出现次数减去其他数字出现的次数)是可以进行区间合并的,于是我们可以考虑用线段树来维护每个区间的num和cnt,然而这还不够,因为我们需要判断当前区间绝对众数的出现次数是否大于等于threshold,由于arr[i]<=20000,我们可以考虑使用20000个list记录下每个数字出现的下标(注意这是有序的),然后通过二分来计算出当前原创 2021-04-03 14:15:46 · 247 阅读 · 1 评论 -
[51nod] 汽油补给 贪心+单调栈+线段树
题面:比较难的贪心。倒序枚举每一个城市,用单调栈处理出当前城市x到之后的哪个城市y油价一直是最低的,那么x到y+1消耗的汽油都应该在x处加,这是油箱容量T大于等于x到y+1所耗费的油量的情况。当T小于x到y+1所耗费的油量时,就应该选择从x到可以到达的最远城市间(这个可以用前缀和二分预处理)油价最低的城市加油,这个操作可以用ST表实现,但我选择的是线段树(太久没用了,想练练hhh)。import java.io.OutputStream;import java.io.IOException原创 2021-04-01 17:22:13 · 129 阅读 · 0 评论 -
[LeetCode] 第159场周赛题解
第一题:为防止丢失精度用乘法代替除法。public class Solution { public boolean checkStraightLine(int[][] c) { boolean flag=true; for(int i=2;i<c.length;i++) { if((c[i][1]-c[i-1][...原创 2019-11-27 15:42:17 · 169 阅读 · 0 评论 -
[codeforces718B] 线段树+矩阵
题意:思路:显然线段树维护矩阵,其中区间加操作可转换区间乘上转移矩阵的x次方,不过需要注意这题可能有点卡常,注意一些小细节的常数。import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.mat...原创 2019-11-25 11:48:07 · 249 阅读 · 0 评论