专栏文章

题解:P14566 【MX-S12-T1】取模

P14566题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@min33fw2
此快照首次捕获于
2025/12/01 19:46
3 个月前
此快照最后确认于
2025/12/01 19:46
3 个月前
查看原文

题意

给定一个非负整数序列 aa,选定一个正整数 pp,使得 aa 中所有元素对 pp 取模后极差最大,输出这个最大的极差。

思路

我们要使这个极差最大,就要让最小值尽可能地小。
显然,只要将一个数对 pp 取模,那么最终结果必定小于 pp
因此仅有 pmaxi=1naip \ge \max_{i = 1}^n a_i 的时候存在最优解,因为如果 pp 再往小的取,那么最大值只会越来越小,极差无法得到最大化。
如果 p>maxi=1naip > \max_{i = 1}^n a_i,那么所有数对 pp 取模最终结果都不变,此时极差为 (maxi=1nai)(mini=1nai)(\max_{i = 1}^n a_i) - (\min_{i = 1}^n a_i)
如果 p=maxi=1naip = \max_{i = 1}^n a_i,那么由于最大值与 pp 相等,取模后最大值就会变为 00。此时原来的严格次大值变为最大值,原来的最大值变为最小值,极差为该序列的严格次大值。
最终答案取两种情况的最大值即可。

Code

代码简单,就不放了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...