CF 1052 div2 A、B题题解
talent_wei · · 题解
为什么把 AB 题放在一起说?后面会提到。
首先先看 A 题。
题意简述:给定一个长度为
题解:首先我们发现一个性质:如果我们已经钦定了值为多少的元素会被选,那么我们一定是取这些值的出现个数的最小值那个作为任意一个的出现次数。换一种想法,如果我们已经知道了我们每一个值都会取
通过上面的性质分析,容易发现我们取的
具体实现:我们对于所有的值做一个桶,然后进行从小到大排序。排序之后对于每一个下标
时间复杂度:
提交记录 - CF2146A
回头看一下这个题的思想:我们为什么可以做出来?根本原因是这个题的性质很强。我们可以轻松知道怎样是最优的。所以我们可以通过简单枚举进行计算。
然后是 B 题。
题意简述:
给你
你需要选择一些集合(可以一个都不选,也可以全选),使得从
请判断是否有至少三种不同的方式选择集合,使上述条件成立。
- 所有测试用例中
\sum n 不超过5 \cdot 10^4 ; - 所有测试用例中
\sum m 不超过10^5 ; - 所有测试用例中
\sum L 不超过2 \cdot 10^5 。
题解:题目要求我们判断是否有 3 种方式选择集合,所以不妨先考虑是不是存在一种方式选择集合。容易发现我们所有的集合全都选上是更容易满足题目要求的。所以我们先判断是不是所有的集合并起来是集合
然后我们考虑其他两种情况。首先,
提交记录 - CF2146B
这个题为什么可以这样做:因为我们对于 "至少 3 个" 的限制做了很好的转化。说白了也是题目的性质很强,我们知道怎么是最优的。所以可以轻松判断。
这两个题的共性也就出来了:都是题目描述 / 性质很强,并且容易构造最优化方案。