P9492 「SFCOI-3」进行一个拆的解 题解
liruixiong0101 · · 题解
P0 题意:
给定一个长度为 NO 否则输出 YES。
P1 思路:
1.暴力:
暴力思路很明显,枚举
2.正解:
我们来自己手算一下第一个样例,我们会发现当
- 当
l=3 时,两个序列分别为1 2 1和2 1,此时2 1为1 2 1的子序列。 - 当
l = 4 时,两个序列分别为1 2 1 2和1,此时第一个序列增加了一个2,而第二个序列减少了一个2,1也为1 2 1 2的子序列。
研究完样例,我们很容易发现一个性质:
若
我们从子序列的定义入手:
若一个序列
a 可以通过删除任意数量元素(可以为0 个),从而让序列a 变为另一个序列b ,那么称b 为a 的子序列。
很明显,我们在
同理,我们可以得出一下结论:
- 若
l=\lfloor\frac{n}{2}\rfloor 时,这个l 成立,那么l\ge\lfloor\frac{n}{2}\rfloor 所有的l 都成立。 - 若
l=\lceil\frac{n}{2}\rceil 时,这个l 成立,那么l\le\lceil\frac{n}{2}\rceil 所有的l 都成立。
所以我们只需判断
P3 代码:
代码很简单,这里只提供 AC 记录了。
https://www.luogu.com.cn/record/119061135