Codeforces Round #836 (Div. 2) A-D题解
A、SSeeeeiinngg DDoouubbllee
一个字符串的每个字母翻倍,且没有其他限制。所以把字符串正着输一遍,再倒叙输出一遍即可。
点击查看代码
B、XOR = Average
对于奇数个的非常好想。全部输出 时可以发现刚好全部相等。
对于偶数个时,如下考虑:先将前 个设为相同的某个数 ,那么原式即为: ^ 。化简,可以变成:
。所以得到: 且 。枚举发现, 的时候成立。
点击查看代码
C、Almost All Multiples
首先一个显然的结论,当且仅当 是 的倍数的时候,才存在这样的排列。反证:若将另外一个倍数放过来,则 也必定不能放在另外那个倍数的位置上。所以 不是 的倍数的时候,就不存在。
接着,先考虑一个通解:收尾按照要求放好,剩下的每个位置先放上自己,第 位则特殊地放 。可以发现,对于 前面的位置,已经达到了字典序最优。所以考虑把 尝试往后移动。考虑 做法:每次向后走,遇到一个数字,如果他恰好是 的倍数,而且 也是他的倍数,那么证明二者可以交换。值得注意的是, 是所有数字中最大的,且我们优先变换较小的数字,所以这次操作对于字典序一定最优。
点击查看代码
D、Range = √Sum
一道纯纯的构造题。对于 为偶数的情况,发现在以 为中心,半径为 的去心邻域内,所有整数组成的数列合法。
对于 为奇数的情况,如此考虑。先考虑以 为中心,半径为 (向下取整) 的邻域中的所有连续整数,则有差值:。和: 。
去掉根号,有: 与 。可以发现,最大与最小的值一个加一一个减一,和不变,但可以把差值变为 。总体右移,总和增大 ,倒数第二个右移一位,总和加一。可以发现此时二者相等。
点击查看代码
__EOF__

本文链接:https://www.cnblogs.com/wondering-world/p/16936565.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧