#P7839. 「Wdoi-3」夜雀 singing
「Wdoi-3」夜雀 singing
Description
我们可以将这 棵树从 到 编号。其中,在 个点上分布着参加舞会的夜雀。第 棵树的高度为 。
夜雀们的歌会一共会进行 时刻。第 个时刻,夜雀们只能在高度严格大于 的树上唱歌。因为这些树木都是事先被选择好的,因此总是有 。夜雀们每个时刻,可以选择站着不动,或移动到编号相邻的一棵树上(例如,原先在编号为 的树上的夜雀,下个时刻可以移动到编号为 或者 的树上。不过,她们不能移动到编号为 或 的树上)。初始时为第 时刻。也就是说,假使一个夜雀初始时在高度为 的树上,那么她下一时刻不得不去高度大于 的树上。
但这样一些夜雀可能无法顺利完成歌会,会遇到“无处可走”的情况,于是夜雀们决定选择若干个大树作为飞行点。如果一个夜雀到达了某个飞行点,那么下一时刻她除了能移动到编号相邻的树上,还能到达其他的飞行点。
然而,飞行点太多容易使得歌会变得非常混乱。因此,米斯蒂娅希望最小化飞行点的数目。你能帮帮她吗?
Input Format
第一行三个整数 。含义如题面所示。
第二行 个整数,第 个整数表示 。
第三行 个整数,第 个整数表示第 只夜雀的位置 。
Output Format
输出一行,一个整数,表示最少的飞行点数量。
5 3 4
1 2 1 4 5
5 3 2
2
10 7 9
8 1 1 5 13 10 1 1 6 3
2 4 7 10 6 8 9
3
Hint
样例 1 解释
一个最优方案是,分别在第 棵树建立飞行点,下表为各夜雀的一个可行移动方案:
$$\def\arraystretch{1.8} \begin{array}{|c|c|c|c|} \hline \textsf{\textbf{夜雀编号}} & \textsf{\textbf{时刻 $0$ 所在位置}} & \textsf{\textbf{时刻 $1$ 所在位置}} & \textsf{\textbf{时刻 $2 \sim 4$ 所在位置}} \cr\hline \textsf1 & 5 & 5 & 5 \cr\hline \textsf2 & 3 & 2 & 5 \cr\hline \textsf3 & 2 & 5 & 5 \cr\hline \end{array}$$可以证明不存在更优解。
数据范围及约定
$$\def\arraystretch{1.6} \begin{array}{|c|c|c|c|}\hline \textbf{Subtask} & \bm{n\le} & \textbf{特殊性质} & \textbf{分值} \cr\hline 1 & 16 & - & 15 \cr\hline 2 & 5\times 10^5 & \text{A} & 5 \cr\hline 3 & 5\times 10^5 & \text{B} & 15 \cr\hline 4 & 10^3 & - & 25 \cr\hline 5 & 5\times 10^5 & - & 20 \cr\hline 6 & 5\times 10^6 & - & 20 \cr\hline \end{array}$$- 特殊性质 A:。
- 特殊性质 B: 且 。
对于 的数据,满足 ,,。保证 互不相同,且 。
提示
显然你可以将所有位置都作为飞行点,然后在第 1 时刻让所有夜雀都飞到一棵 的树来得到一组答案为 的合法解。因此本题不会存在无解情况。
京公网安备 11011102002149号