是数学,但不是数学。

我们用数学结论保证了正确性,但用很多好玩的东西保证了前 题不需要知道结论全能暴力 AC 。

第五题和第六题分别选用了课上被讲烂的结论和暴力题。

第七题和第八题采用了不常见的结论和不常见的所谓“根号的优雅暴力”增加区分度。

为什么这套题很怪。因为出题人几乎半退役了(实际上现实的做法就是退役了,但精神上嘴硬没有退役)很抱歉出不了风格全面的题目。

你是职业选手吗?

我觉得我是。

alt

alt

A gcd

预期大家通过观察 AC 。

答案是

浅述证明思路: 时, 的答案是他们的最大公约数。在 存在

可以有很多方法证明,当 都非 时不会是最优解。

B 整除

预期大家通过暴力 AC 。

暴力正确性:

C 字符串

没什么新意,很快可以观察出鸽巢原理。

预期大家通过观察 AC 。

敢于暴力枚举也依旧会是对的。

正确性:

字符串长度超过 后一定存在 出现超过 次。

枚举左端点,再往右枚举右端点,不会超过 次。

D 输出答案

预期大家通过打表 AC

不难打表发现结果只有三种

  1. d + 1 = 4
  2. d + 1 是其他合数
  3. d + 1 是质数

答案很明显的可以通过打表猜出。

正确性证明:

  1. d + 1 是合数

    1. 当 d + 1 = 4。

      显然

    2. 当 d + 1 是 的完全平方数

      ,通过一些入门的高等数学分析显然有 。于是 ,即

    3. 当 d + 1 是非完全平方数

      ,则 。于是 ,即

  2. d + 1 是质数

    1. 。显然常数次枚举一下即有解。
    2. 是奇质数。由 则一定存在 的逆元 满足

    考虑逆元是自己的情况:

    大家喜欢默认互质的模意义下,存在逆元。且基本都会证存在性(实际上只证存在性,结果并不一定是逆元)

    定理:逆元唯一

    这意味着 的逆元不是自己。

    于是 可以被分为 组,每组的乘积为 。这意味着 。两边乘以 得到

    问题来了,怎么证实互质的模意义下逆元的存在性和唯一性?

    存在性: 极其好证明,Euler 定理或者同余方程搞搞就有了,大家都会。这里证略。

    唯一性:

    个与 互质的数。

    则只需证 意义下 是 的一个排列。

    只需要观察两点:

    • 证明: 考虑反证。 ,显然与 矛盾。
    • 证明: 考虑反证。若存在 ,则 ,由 Euler 定理则 ,显然与 矛盾。

    这两点足以证明 意义下是 的一个排列。

为什么你不去打表呢?出题人懂这个结论,但你觉得这个结论是你赛场上当场能推出来的吗?(本校 push ,外校爸爸忽略这句)

E 背景

很常见的结论。

证明:

离散课老师似乎已经把证明讲烂了。

F 位反转

没什么新意的暴力,可暴力可 DP 。

DP 很短很好写。

考虑一个二的幂次

考虑一个数 右移一位得到 。实际上相当于 左移一位得到

于是 右移一位得到 。最高位补上 的最低位: 即可。

于是

很精悍。

G sqrt

不常见的结论。

双指针套 st 表查一下最小的

只需暴力往后找到一个

由质数定理 可以在 次枚举找到。质数判断的优化算法随意,理论上 的算法就足够了。

数据应该是 忘记描述且错误描述所以锅卡了 inf = 0x3f3f3f3f ……抱歉,实际数据里没有放找不到 d 的情况。

然后是:

  1. 有解。

    证明: ,常数次枚举一下就有解。

  2. 为奇质数。 是充要的。 是充要的。

    证明:

    充分性:

    是奇质数,一定存在原根 满足 的阶

    于是任取某个原根为 ,会有 的一个既约剩余系。又 ,于是 的一个完全剩余系,于是

    ,简单变形

    于是 可以开根, 即是一个解。

    ,显然与 矛盾,于是 不能开根。

    必要性:

    ,由 是奇质数则有

  1. 为奇质数。 有且仅有两个解

    证明: 根据 Euler 定理有 。显然

H 同余打标记

看上去就很显然的根号分治。

同余只是为了卡掉调和做法,这个 idea 是很久以前听说的,大概率有类似的原题。

模数大于 ,取值次数将小于 。暴力修改。

模数小于 ,对模 打标记。查询 只需要枚举根号个模数计算

有佬笃定弱校不会出数据,断言测试里只出了 的数据卡 naive 的暴力。特判掉这个点用 naive 暴力过了。

后来验题人说可以分类讨论造数据,一组单增,一组单减,一组先增后减,一组先减后增,一组纯卡 naive 暴力,一组纯卡只打标记。

大家以后打弱校的比赛可以试试对数据分类讨论 AC 。

参考 wls 的爆论“没有金牌不要出题”,dreammoon 的“关于出题人不懂出题这档事”,虽然这些是对标大型比赛的。但确实太难卡了对不起。

此外,出题人确实有尽自己能力去卡了数据,验题人也很尽责的测过了暴力做法。一场比赛的数据强度会严重影响这场比赛的公平性,以人格纯洁与尊严发誓,我们不会承认任何有关“不会故意把数据卡得很死”言论,而是只能表述在能力范围内“尽可能把数据卡死了”。

指出包括但不限于题面描述错误、数据存在问题的绝大多数参赛者都非常友善,非常感谢大家。

卡死数据需要很强的功底,非常抱歉,能力有限。再次感谢大家的宽容,也欢迎大家赐教卡数据的技巧。