专栏文章
题解:P14636 [NOIP2025] 清仓甩卖 / sale(民间数据)
P14636题解参与者 2已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mimyjtjk
- 此快照首次捕获于
- 2025/12/01 17:39 3 个月前
- 此快照最后确认于
- 2025/12/01 17:39 3 个月前
个人体感上蓝下紫。
考虑我们什么时候会算错。
按原价从大到小排序,以下认为前面代表大,后面代表小。
首先这个按性价比选,看起来其实是一种很优的贪心策略,通过手模,我们发现算错当且仅当你现在剩两块钱,有一个没选的赋值为 的数,比接下来两个没选的赋值为 的数更优,但性价比不如第一个没选的赋值为 的数。设这三个数分别为 ,那么这三个数需要满足以下条件:
于是枚举 ,我们发现满足条件的 是一段后缀,而 后面的所有数都可以选或不选,假设后面长度为 ,贡献就是 。
再观察,枚举 ,我们发现 取值是单调的,于是我们类似双指针那样搞一下。
接着考虑我们开局有 元,我们要用掉剩下的 元。通过观察,首先我们发现 一定在 前面,其次是 前面的数定价 都会被买, 和 中间的数定价 会被买而 不会,我们让前面的 整体减 ,问题变成了在中间这么多位置中选出固定个数个位置变成 ,预处理组合数即可。
时间复杂度 ,代码等出来贴。
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...