chenfy27的刷题记录

导航

2024年3月17日 #

luoguP1901 发射站能接受到的最大能量

摘要: n个能量发射站排成一行,第i个发射站的高度为H[i],并能向两边同时发射值为V[i]的能量,发射的能量只会被两边最近且比它高的发射站接收。求所有发射站里能接收的最大能量。 1<=n<=1e6; 1<=H[i]<=2e9; 1<=V[i]<=1e4 先用单调栈求出每个发射站发出的能量被谁接收,更新接收 阅读全文

posted @ 2024-03-17 00:47 chenfy27 阅读(20) 评论(0) 推荐(0)

luoguP5788 数组中寻找右侧第一个大于它的数

摘要: 给定数组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 阅读(32) 评论(0) 推荐(0)

2024年3月16日 #

abc174E 最小化不超过k次操作后木棍的最大长度

摘要: 有n根木棍,第i根木棍长度为a[i],每次操作可以选一根木棍将其锯成两段,要求总操作次数不超过k。问最终所有木棍最大长度的最小值是多少? 1<=n<=2e5; 0<=k<=1e9; 1<=a[i]<=1e9 最小化最大值,或者反过来最大化最小值,优先考虑二分答案,对于某个特定的长度x,考虑将其锯成最 阅读全文

posted @ 2024-03-16 19:05 chenfy27 阅读(34) 评论(0) 推荐(0)

abc214D 全部路径最大边权之和

摘要: 给定一颗包含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 阅读(22) 评论(0) 推荐(0)

leetcode2250 统计包含每个点的矩形数目

摘要: 有n个矩形,第i个矩形左下角在(0,0)处,右上角在(l[i],h[i])。另给出m个点(x[i],y[i]),问有多少个矩形覆盖了这个点,点在边上也算是覆盖。 1<=n,m<=5E4; 1<=l[i],h[i]<=1E9; 1<=h[i],y[i]<=100; 所有矩形互不相同,所有查询点互不相同 阅读全文

posted @ 2024-03-16 13:07 chenfy27 阅读(16) 评论(0) 推荐(0)

leetcode1847 最近的房间

摘要: 有n个房间,rooms[i]={id[i],size[i]}表示第i个房间编号为id[i],面积为size[i],房间编号唯一。 现有k个查询query[j]={preferred[j],minsize[j]},表示要求面积至少为minsize[j],且编号跟preferred[j]最接近,如果有多 阅读全文

posted @ 2024-03-16 12:46 chenfy27 阅读(17) 评论(0) 推荐(0)

leetcode2426 满足不等式的数对个数

摘要: 给定两个大小为n的数组nums1和nums2以及整数diff,统计满足以下条件的数对(i,j)的个数:0<=i<j<=n-1,并且nums1[i]-nums1[j]<=nums2[i]-nums2[j]+diff。 2<=n<=1e5; -1e4<=nums1[i],nums2[i]<=1e4; - 阅读全文

posted @ 2024-03-16 11:16 chenfy27 阅读(17) 评论(0) 推荐(0)

leetcode327 区间和的个数

摘要: 给定数组nums[n]和整数lower与upper,求nums[n]中,元素之和在[lower,upper]范围内的子数组个数。 1<=n<=1e5; nums[i]在int范围内; -1e5<=lower<=upper<=1e5; 答案在int范围内 分析:子数组的和可以用前缀和来快速求出,假设当 阅读全文

posted @ 2024-03-16 10:52 chenfy27 阅读(13) 评论(0) 推荐(0)

leetcode493 统计重要翻转对的数目

摘要: 给定一个数组nums[n],如果i<j并且nums[i]>2*nums[j],则称(i,j)是一个重要翻转对。求nums[n]中重要翻转对的数量。 1<=n<=5e4; nums[i]在int范围内 分析:直接套平衡树模板即可。 // Treap模板... class Solution { publ 阅读全文

posted @ 2024-03-16 10:27 chenfy27 阅读(11) 评论(0) 推荐(0)

2024年3月15日 #

abc281E Least Elements

摘要: 给定数组a[n]以及两个数m与k,求数组a[n]上大小为m的滑动窗口里最小的k个数之和。 1<=k<=m<=n<=2E5; 1<=a[i]<=1E9 分析:直接套带前缀和的平衡树即可。 #include <bits/stdc++.h> using i64 = long long; // Treap模 阅读全文

posted @ 2024-03-15 22:35 chenfy27 阅读(14) 评论(0) 推荐(0)