CF *800~*1200 构造题练习
别问为什么 *800 ~ *1200,问就是因为实力不济。
我要开始练习智力了
CF 1845A
考虑 x 不为 1 的情况。显然,输出 n 个 1 即可。
再看 x 为 1。如果此时 k 为 2 且 n 为奇数,明显无解。其他情况可以证明 n 能用 表示,输出解即可。
证明:,, 其中
若 n 为偶数,显然成立
若 n 为奇数,那么 成立(其中 )
证毕。
1.5h [*800]
CF 1844B
结论:2、3 放头尾,1 放中间,其余任意。
证明:(来自 Editorial | BlankYang)
当 时,样例里有答案,直接输出即可就是抄嘛
当 时,考虑最小的两个素数 2 和 3 的位置。由于需要最大化 mex 为质数的子区间,所以让 2 和 3 分别在头和尾是最优的,这个结论可由 mex 函数定义推出。(小注:当 2,3 放在中间时,一定会有子区间同时包含 2 和 3,则这些子区间的 mex 就不一定为质数。当将 2,3 置于头和尾时,对于 的所有 (l, r) 来说,它们的 mex 一定不大于 2,比将 2,3 放在中间的答案更优。)
接下来讨论 1 的位置
令 1 所在位置为 pos,则个数最多为:
其中 为艾弗森括号,[P] = 0 表示事件 P 为假;[P] = 1 表示事件 P 为真
其实不难理解。1 不是素数,所以有贡献的 (l, r) 中肯定有 1。pos位子左边有 pos 个数,右边有 n - pos + 1 个数,所以总贡献为 。
考虑求 的 。容易知道 为二次函数,最大值在 处取得。故令
证毕。
至于为什么其余数字任意,交一发就知道了嘛(
15min [*1000]
CF1844A
由于可以取 a 个或者 b 个,先手必胜即为 a + b 个。证明略。
3min [*800]
CF1841A
对于 Alice 而言,必胜态为 ,因此 时 Alice 赢,反之则 Bob 赢。
5min [*800]
CF1838A
待续 upd: 2023.8.8
考虑对于黑板上的负数,由于操作是取两数绝对值作为新数,所以黑板上的负数一定是最开始的两个数中的一个。
再来考虑非负数。不难得出最大值即为所求。
证明:(来自 Editorial)
且 有:
由于最大值大于等于其他数,所以除了最大值之外的其他数若作为开始的两个非负数,则永远不可能写出最大值。因此最大值必定为开始的两个数之一。
证毕。
1.5h [*800]
CF1838B
分类讨论 的位置(其中 表示 x 在 排列 p 中的位置)。
当 在 和 中间时,答案为
当 在 和 的左边或右边时,答案取 中最小/最大者和
来自 Editorial
3h+ [*1100]
智力练习失败