RMQ
__wwwwn
这个作者很懒,什么都没留下…
展开
-
2019牛客暑期多校训练营(第一场)A 递归+rmq+二分||单调栈||笛卡尔树
题意:求最大的q使得 两个区间{a1,a2,…,ap},对于任意的1≤l≤r≤m的rmq下标相等 题解:二分查找p的最大值,然后对于每一个区间首先查询两个区间最小值的下标相等,然后如果相等递归看去掉当前最小值的左右区间是否继续符合 题解2:维护两个单调栈,单调栈的key一定是笛卡尔树的最右链的key,判断单调栈相等就是笛卡尔树相等,其实只要判断单调栈的大小相等就可以,毕竟每个元素的值都是不同的...原创 2019-07-18 21:33:55 · 155 阅读 · 0 评论 -
codeforces 1175F rmq+区间不重复
题意:找从[l,r]每一个元素都不重复且最大值为r-l+1的区间数 题解:先找到以i为左端点的最远右端点r,然后rmq判断一下最大值是不是r-l+1思路 rmq直接套板子就可以 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6+10, INF = 0x...原创 2019-07-17 18:10:15 · 226 阅读 · 0 评论 -
2019牛客暑期多校训练营(第六场)J Upgrading Technology st表+前缀和
题意:有i个技能,每次升级都有花费cij,然后所有技能都达到j级送dj块钱,问你最多能赚多少 题解:枚举第i个技能为j时是最低的技能,然后剩余技能在j-m选最小花费,我用的st表维护 卡了半天,结果是发现忘了考虑不升级的情况,所以我把所有m右移了1,a[1]=0就行了 #include <bits/stdc++.h> using namespace std; typedef l...原创 2019-08-03 23:56:14 · 306 阅读 · 0 评论 -
2019牛客暑期多校训练营(第四场)C 单调栈&&线段树
题意: 题解:l和r我用dp求得,跟单调栈思路差不多,但是好写 这里有两个问题 1.我一开始用rmq的stp表查询最值,结果这种用空间换时间的做法mle了,因为维数有25维,正好被卡掉了 后来只能用线段树查询最值 2.为了让b[i]包括在区间内,我查询的区间并不是跟题解上一样的,我查的区间是l-1....i-1和i....r,然后这样会出现一个问题,一个是 l==i时查询就会出问题,第...原创 2019-07-28 20:12:07 · 183 阅读 · 0 评论