1 条题解
-
1
信息
- ID
- 28
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 4
- 标签
- 递交数
- 553
- 已通过
- 209
- 上传者
注意到当前 r 个数相同且与第 r+1 个数不同时,我们可以让前 r 个数变得与第 r+1 个数相同:只需要对 i=r,r−1,⋯,1 分别操作一次即可,需要操作 r 次。
因此,我们可以花最多 2k(k−1) 次操作让前 k 个数相同。
设 k=⌊2n⌋,则我们可以花 2k(k−1) 次操作让前 k 个数相同,同理可以花 2(n−k)(n−k−1) 次操作让后 n−k 个数相同。
如果此时前 k 个数与后 n−k 个数不同,可以再花 k 让前 k 个数变得与后面的数相同。
综上,我们可以以 $\left\lfloor\dfrac n2\right\rfloor\left\lceil\dfrac n2\right\rceil$ 次操作使所有数相同,在给定的操作次数限制内。