题解、Writeup、游记和碎碎念
http://ljt12138.blog.uoj.ac/blog/5059
对于第二个问题,当 时,可以如下构造:
对于 的个数为偶数和奇数的两种数,按 的个数从小到大,其次大小从大到小排序。 个人在偶数堆中从前向后选, 个人在奇数堆中从后向前选。
显然只需要验证 且 的正确性。
用程序可以容易的证明 较小情况的正确性(https://paste.ubuntu.com/p/XndFcftKF9/)。
设 个人中最后一个选择的数 的 的个数为 , 个人中最后选择的数 的 的个数为 ,那么显然 。
当 时,显然不会有数相邻;而 时,只要证明 ,那么 去掉某个 之后一定比 小,也就证明了不可能有两个数相邻。
只要预处理组合数,就可以在 时间内知道某个 对应的 ,然后再找到比这个 小的最大的 ,这样不停迭代,最终就可以验证这个的正确性(https://paste.ubuntu.com/p/gHmTyZbvGr/)。
日期: 2019-06-05
这是一篇旧文,原始文章及评论可在 https://oldblog.mcfx.us/archives/265/ 查看。