摘要: 给定数组H[n],表示柱状图中各个柱子的高度,每个柱子彼此相邻,且宽度为1。求该柱状图中,能够勾勒出来的矩形的最大面积。 1<=n<=1e5; 0<=H[i]<=1e4 枚举每个柱子作为最短时能得到的最大矩形,尽量往两边延伸,取最小值即为答案。 class Solution { public: in 阅读全文
posted @ 2024-03-17 14:37 chenfy27 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定数组nums[n]和两个整数left,right,找出nums中连续非空、并且最大元素在[left,right]范围内的子数组,统计所有满足条件子数组的个数。 1<=n<=1e5; 0<=nums[i]<=1e9; 0<=left<=right<=1e9; 保证答案在int内 枚举每个元素作为最 阅读全文
posted @ 2024-03-17 14:29 chenfy27 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定数组nums[n]和整数threshold,找到长度为k的子数组,满足子数组中每个元素都大于threshold/k,返回满足条件的任意一个k即可,如不存在,返回-1。 1<=n<=1e5; 1<=nums[i],threshold<=1e9 子数组每个元素都大于t,也就是最小值大于t。对于固定的 阅读全文
posted @ 2024-03-17 14:13 chenfy27 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 给定数组arr[n],求所有子数组中最小值的和,答案对1e9+7取模。 1<=n<=30000; 1<=arr[i]<=30000 考虑每个数作为最小值对应的子数组有多少个,计算对答案的贡献,而子数组的个数可以用单调栈来维护。数组元素可能相同,为了避免重复计数,用半开半闭区间。 class Solu 阅读全文
posted @ 2024-03-17 13:58 chenfy27 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定数组nums[n],子数组的范围指子数组中最大元素与最小元素的差值,返回nums中所有子数组的范围之和。子数组是数组的连续非空序列。 1<=n<=1000; -1e9<=nums[i]<=1e9 分别考虑每个元素作为最小和最大值的情况,统计作为最小值的次数,作为最大值的次数,这个可以用单调栈求出 阅读全文
posted @ 2024-03-17 11:03 chenfy27 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定数组A[n],如果i<j,并且A[i]<=A[j],则称坡的宽度为j-i。求A中坡的最大宽度,如果不存在,返回0。 2<=n<=50000; 0<=A[i]<=50000 二维偏序问题,先按元素值排序去掉一维,将符合条件的元素加入集合,然后在集合中根据第二维找最优答案。 class Soluti 阅读全文
posted @ 2024-03-17 10:30 chenfy27 阅读(4) 评论(0) 推荐(0) 编辑
摘要: n个能量发射站排成一行,第i个发射站的高度为H[i],并能向两边同时发射值为V[i]的能量,发射的能量只会被两边最近且比它高的发射站接收。求所有发射站里能接收的最大能量。 1<=n<=1e6; 1<=H[i]<=2e9; 1<=V[i]<=1e4 先用单调栈求出每个发射站发出的能量被谁接收,更新接收 阅读全文
posted @ 2024-03-17 00:47 chenfy27 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 给定数组a[n],对于每个元素a[i],求后面第1个比它大的元素的下标,如果不存在,则用0表示。 1<=n<=3e6; 1<=a[i]<=1e9 单调栈和单调队列都是类似的套路,先循环把容器中不符合条件的元素弹出,然后更新答案,再将元素入队。 #include <bits/stdc++.h> usi 阅读全文
posted @ 2024-03-17 00:33 chenfy27 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 有n根木棍,第i根木棍长度为a[i],每次操作可以选一根木棍将其锯成两段,要求总操作次数不超过k。问最终所有木棍最大长度的最小值是多少? 1<=n<=2e5; 0<=k<=1e9; 1<=a[i]<=1e9 最小化最大值,或者反过来最大化最小值,优先考虑二分答案,对于某个特定的长度x,考虑将其锯成最 阅读全文
posted @ 2024-03-16 19:05 chenfy27 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 给定一颗包含n个顶点的树,第i条边连接u[i]和v[i],边权为w[i]。记f(i,j)表示顶点i到j的简单路径上边权的最大值,求 $ \sum_{i=1}^{n-1} \sum_{j=i+1}^{n}f(i,j) $。 2<=n<=1e5; 1<=u[i],v[i]<=n; 1<=w[i]<=1e 阅读全文
posted @ 2024-03-16 14:41 chenfy27 阅读(3) 评论(0) 推荐(0) 编辑