#L4334. 「CSP-S 2024」决斗
「CSP-S 2024」决斗
题目描述
小 Q 有 (n) 张卡牌,第 (i) 张卡牌代表一只怪兽,其攻击力和防御力均为 (r_i)。
游戏规则:
- 每回合选择怪兽 (i) 攻击怪兽 (j)((i \neq j))
- 如果 (r_i > r_j),则怪兽 (j) 退出游戏
- 否则无事发生
- 每只怪兽至多发起一次攻击
- 当所有未退出游戏的怪兽都攻击过时,游戏结束
目标:安排攻击顺序,使得游戏结束时未退出游戏的怪兽数量尽可能少。
输入格式
从 duel.in 读入数据:
- 第一行:正整数 (n)
- 第二行:(n) 个正整数 (r_1, r_2, \dots, r_n)
输出格式
输出到 duel.out:
- 一行一个整数,表示未退出游戏的怪兽数量的最小值
样例
样例 1
输入:
5
1 2 3 1 2
输出:
2
解释:一种最优方案:
- 怪兽 2 攻击怪兽 1(怪兽 1 退出)
- 怪兽 5 攻击怪兽 4(怪兽 4 退出)
- 怪兽 3 攻击怪兽 5(怪兽 5 退出) 剩余怪兽 2 和 3 都攻击过,游戏结束,剩余 2 只。
样例 2
输入:
10
136 136 136 2417 136 136 2417 136 136 136
输出:
8
样例 3
- 满足 (r_i \leq 2)
数据范围
| 测试点 | (n) | (r_i) | 特殊性质 |
|---|---|---|---|
| 1~4 | (\leq 10) | (\leq 10^5) | 无 |
| 5~10 | (\leq 10^5) | (\leq 2) | |
| 11~15 | (\leq 30) | (\leq 10^5) | 独立均匀随机生成 |
| 16~20 | (\leq 10^5) | 无限制 | 无 |