专栏文章
题解:P14636 [NOIP2025] 清仓甩卖 / sale
P14636题解参与者 3已保存评论 3
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @min09zr1
- 此快照首次捕获于
- 2025/12/01 18:28 3 个月前
- 此快照最后确认于
- 2025/12/01 18:28 3 个月前
特判 。先考虑正难则反,把会没掉的方案数算出来。
对 从大到小排序。考虑枚举一个 满足 ,此时任何 以及 的糖果 都会被选中。注意根据定义, 不会被选中。那么,没掉的方案有两种可能:
- 所有 的糖果 都满足 ,他们都被选中。所有选中的糖果(包括 值为 )的 之和恰为 。
- 存在两个被选中的糖果 使得 ,,, 且所有 的糖果 都没被选中,所有 的糖果 都被选中。所有选中的糖果(包括 值为 )的 之和恰为 。
对于第一种情况,枚举 的 ,以及 最小(也就是 最大)的 的糖果 。这个 需要满足:
- ;
- 对于所有 ,。
此时,这个方案能产生贡献当且仅当 。把上面的东西判完之后对这样的方案计数:
-
我们要在前 个位置中去除掉 这两个已经知道 值的位置,剩下的 个位置中填入合适数量的 和 ,使得下列两个值:
- 满足 的 的数量乘 ;
- 满足 的 的数量。
加起来正好等于 (这里为什么不是 是因为 也会被选中,要去掉它)。同时,我们还要求对于 ,。若 则无限制。这样的方案数记作 ,具体求法见下文。 -
剩下的位置填 ,方案数为 。
对于第二种情况,枚举 的 ,以及上文提到的 。此时需要满足:
- ,;
- 对于所有 ,。
此时,这个方案能产生贡献当且仅当 。把上面的东西判完之后对这样的方案计数:
- 我们要在前 个位置中去除掉 这两个已经知道 值的位置,剩下的 个位置中填入合适数量的 和 。。。等等?这和第一种情况里的如出一辙,那我们就知道这个值为 。
- 我们要在后 个位置中任意选,所以这个方案数是 ;
- 我们要在 的 中填 , 中填 。方案数为 。
现在,如果我们知道怎么求 ,那就可以 。在求 之前,我们先把第二种情况优化一下,使得除去求 ,剩下的复杂度为 。
我们发现,第二种情况的 可以扔到外面去,具体地,固定 ,随着 的增加,满足条件的 一定是个后缀,而这个后缀的边界会越来越向左,直到边界撞上 为止。撞上之后,任何 的 都将满足条件。因此我们拿个指针维护这个边界,随着边界向左扩张动态维护当前的总方案数就可以了。
问题变为了求 。
-
对于 ,注意到此时 中 值为 的位置数是固定的, 就是一个组合数;
-
对于 ,我们发现下面两个值的和:
- 满足 的 的数量;
- 满足 的 的数量。
是定值,此时 也是一个组合数。
至此我们完成了本题,时间复杂度 。
相关推荐
评论
共 3 条评论,欢迎与作者交流。
正在加载评论...