题解 P6398 【[COI2008] KOLEKCIJA】
upt on 2020.10.27:又修改了一些事实性错误,请管理员重新审核通过qwq。
upt on 2020.10.25:修改了一些事实性错误,请管理员重新审核通过qwq。
先从大到小排序,设
很容易推出方程
但是直接搞的话是
我们可以把这个方程分成两部分:
1.
这样的话,我们可以发现实际上是:
那么显然可以看成是
怎么找到满足条件的
推完dp方程后怎么构造最后的答案呢?
如果
否则,显然是不相邻的,那么左端点是
还要考虑边界的情况。设
-
如果左端点
\le Min-1 ,那么让这个点变为Min ,同时右端点也要相加。 -
如果右端点
\ge n+1 ,那么让这个点变为n ,同时左端点也要减。
最后还要记得记得排回来
code