2021.09.23am
2021.09.23am
| 预期 | 实际 | |
|---|---|---|
| A | 100 | 100 |
| B | 30 | 0 |
| C | 100 | 100 |
| D | 100 | 75 |
| E | 30 | 0 |
| S | 360 | 275 |
可能水,一定菜
A 零件分组 \(\blacktriangle\)
- 据说像导弹拦截,没看出来但是问题不大
- 目的是排成多组长度和重量都不下降(
幸好不是陌上花开),那为了简化,我们肯定先按照其中一个要素(比如长度)排序。 - 排序后题目转化成了能把序列拆成最少个数的不下降序列
- 而这有一个有趣的性质:最长下降子序列的长度即为答案。
B 似乎在梦里见过的样子 \(\blacktriangle\!\blacktriangledown\)
- 这道题因为数据比较水,甚至最坏 \(O(n^3)\) 都能过。(
甚至比严格\(O(n^2)\) 快) - 先想一个 \(O(n^3)\) 的算法:
- \(O(n)\) 枚举每一个起始位置
- \(O(n)\) \(KMP\) 预处理
- 同时由于要满足\(2*k+1<i\),我们最坏 \(O(n)\) (全是 \(a\))不断往前跳 \(nx\)
- 优化就在于跳 \(nx\) 后把每一个位置的满足条件的最小 \(k\) 记录下来(之所以最小,是之后肯定也能用)
C 最优贸易 \(\blacktriangle\!\blacktriangledown\)
原题
D Radio Transmission \(\blacktriangle\)
- 又是一道利用 \(KMP\) 性质的题。
- 最后一个字符的 \(nx\) 的大小表示和第一个字符开始的重复字符数量,而我们要找最小的循化节,那直接把重复字符删掉就是答案。
E Knights of the Round Table \(\blacktriangle\!\blacktriangledown\!\blacktriangle\)
- 首先,根据题意,有矛盾的不能坐在身边,难以维护,考虑建反图。
- 其次,现在已经是一个反图,有边的就是能坐在旁边,目的是找奇环。
- 但是,由于奇+偶=奇的性质,对于一个点双连通分量,只要有一个奇环,则整个点双连通分量都能参与其中的一次会议。
- 所以说本题的解题思路就是:
- 建反图
- 跑 \(Tarjan\) 找点双,同时立即进行染色,出现矛盾后将点双的点标记。
- 计算答案
- 难点就是:反图,奇+偶=偶,以及
只有一组数据

\(\cal {Made} \ {by} \ {YuGe}\)
浙公网安备 33010602011771号