首页 > [JSOI2008]最大数MAXNUMBER
头像 威风镰鼬
发表于 2021-09-17 13:04:18
思路 改一下线段树的模板就行了。每次添加数的时候len+1,查询区间是[len-L+1,len]。 代码 #include <bits/stdc++.h> #define int long long using namespace std; typedef long long ll; c 展开全文
头像 sunny_forever
发表于 2021-08-11 11:40:53
线段树 或 ST 表 法1:线段树 #include <bits/stdc++.h> using namespace std; const int N = 2e5+10; int m,d; struct node{ int l,r; int maxm; }tr[N* 展开全文
头像 CUMT21曾虹荐
发表于 2022-05-23 23:13:51
思路一: 直接上线段树,这个没什么好讲的,线段树最基本的操作 思路二: 单调栈+二分 这里上单调栈是一个很妙的地方,我们可以始终维护出一个线型递减的关系 二分即二分我们的目标区间左端在那个区间里,返回区间的右界就好 思路三: 单调栈+并查集 这里的并查集使用又是在二分上的一个优化,同样是用单调栈先维 展开全文