CodeForces 800~1300 练速度
1476A K-divisible Sum
\(给定n个元素的数组,找到最大值最小的数组中的最大值,使得数组之和是k的倍数\)
\(首先,设数组之和为S。容易有,S = cf \times k。\)
\(再,S \ge n。\)
\(于是有,cf \times k \ge n。得到,cf = \lceil \frac{n}{k} \rceil = \lfloor \frac{n+k-1}{k} \rfloor\)
\(现在我们得到了S的最小值,易知给定S,长度为n的数组的最大值大于等于\lceil \frac{s}{n} \rceil\)
\(容易构造出最大值为\lceil \frac{s}{n} \rceil的数组,比这个值小的数组和无法达到S。\)
\(得到,结果为\lceil \frac{s}{n} \rceil = \lfloor \frac{cf\times k + n - 1}{n} \rfloor\)

浙公网安备 33010602011771号