合集-双指针
摘要:原题链接 题解 最大值最小 \(\to\) 二分可行性判断: 二分间断值 \(len\ \to\) 如果原序列 \(a_i-a_{i-1}>len\) \(\to\) 双指针判断有没有 \(b+f\) 使得 \(a_i-len<=b+f<=a_{i-1}+len\) 由于只能使用一次,所以若使用两次
阅读全文
摘要:原题链接 题解 1.只需要求最大值和最小值之差,所以最大值和最小值之间放几个数放什么数都无所谓 2.既然只需要求最大值和最小值,那么我们可以把数组升序排序,然后求以每个值为最大值时,与最小值的差 3.按照升序排序后,最大值越大,最小值不会更小 code #include<bits/stdc++.h>
阅读全文
摘要:原题链接 题解 我们知道,三角形成立的条件是任意两边之和都要大于第三边,因为这里已经明确了三条边的大小关系,即 \(x\leq y\leq z\) 所以,该三角形成立的条件是 \(x+y>z\) 看到 \(5e5\) 我们不难想到遍历其中某条边的长度 这里我遍历的是 \(y\) 遍历 \(y\),找
阅读全文
摘要:原题链接 题解 只要求最大值和最小值的差尽量小,也就意味着,权值位于最大值和最小值之间的线段可以任意取 也就是说,我们将线段按权值排序,我们只需要取其中一段区间,然后查看是否覆盖了完整的区间,如果是,判断能否更新最小值 这样看起来是两次for循环找区间,对于查看是否完整覆盖区间的部分,看起来是对区间
阅读全文

浙公网安备 33010602011771号