队列
龙卡卡卡
这个人很懒,连个include都没写
展开
-
2020牛客暑期多校训练营(第二场)F
类型这道题很明显是一道单调队列的题目,这个数据结构在我之前的文章中有写到。二维化一维不过这是二维的,首先想到的是用一个单调队列来维护当前的最大值(如下图中que),由于对于每列来说只有该列的最大值是有用的,小于最大值的数不用理会(想想为什么),所以每列就存一个最大值就行,这样就变成了一维的了。由于对不同行,计算新的连续K个排在一列的数(如图中蓝框)的最大值会重复遍历相同点,时间复杂度高,可以想到能不能先把最大值全算出来再利用。求连续K个排在一列的数的最大值其实又是一个求m区间内的最小值的问题,不过原创 2020-07-13 18:01:17 · 155 阅读 · 0 评论 -
Count Triangles 队列解法
题目链接: https://codeforces.com/contest/1355/problem/C分析: 这道题给出了3个范围,要求求出满足不退化三角形(其实就是能构成三角形啦)的个数,看数据范围5e5,肯定不是暴力(i遍历A-B,每一个i遍历B-C)能过的题。思路: 既然暴力过不了,就优化暴力解法。取 i=A(最小边),j在B-C范围内(第二小的边),将每一个j对应的能取的三角形个数存下来(arr[j])。同时我们也得到了i=A时,所有能构成的三角形个数。那么,当i=A+1时,相对于上一次,发现原创 2020-06-06 13:17:10 · 185 阅读 · 0 评论 -
单调队列stl及手写实现,附例题
别跟优先队列搞混了原创 2020-04-08 11:34:00 · 741 阅读 · 0 评论