一
是数学,但不是数学。
我们用数学结论保证了正确性,但用很多好玩的东西保证了前 题不需要知道结论全能暴力 AC 。
第五题和第六题分别选用了课上被讲烂的结论和暴力题。
第七题和第八题采用了不常见的结论和不常见的所谓“根号的优雅暴力”增加区分度。
二
为什么这套题很怪。因为出题人几乎半退役了(实际上现实的做法就是退役了,但精神上嘴硬没有退役)很抱歉出不了风格全面的题目。
你是职业选手吗?
我觉得我是。
A gcd
预期大家通过观察 AC 。
答案是 。
浅述证明思路:
在 非
时,
的答案是他们的最大公约数。在
存在
,
。
可以有很多方法证明,当 都非
时不会是最优解。
B 整除
预期大家通过暴力 AC 。
暴力正确性:
。
。
C 字符串
没什么新意,很快可以观察出鸽巢原理。
预期大家通过观察 AC 。
敢于暴力枚举也依旧会是对的。
正确性:
字符串长度超过 后一定存在
出现超过
次。
枚举左端点,再往右枚举右端点,不会超过 次。
D 输出答案
预期大家通过打表 AC
不难打表发现结果只有三种
- d + 1 = 4
- d + 1 是其他合数
- d + 1 是质数
答案很明显的可以通过打表猜出。
正确性证明:
-
d + 1 是合数
-
当 d + 1 = 4。
显然
。
-
当 d + 1 是
的完全平方数
设
,通过一些入门的高等数学分析显然有
则
。于是
,即
。
-
当 d + 1 是非完全平方数
设
,则
。于是
,即
。
-
-
d + 1 是质数
- 若
。显然常数次枚举一下即有解。
- 若
是奇质数。由
则一定存在
的逆元
满足
。
考虑逆元是自己的情况:
。
大家喜欢默认互质的模意义下,存在逆元。且基本都会证存在性(实际上只证存在性,结果并不一定是逆元)
定理:逆元唯一
这意味着
的逆元不是自己。
于是
可以被分为
组,每组的乘积为
。这意味着
。两边乘以
得到
。
问题来了,怎么证实互质的模意义下逆元的存在性和唯一性?
存在性: 极其好证明,Euler 定理或者同余方程搞搞就有了,大家都会。这里证略。
唯一性:
设
是
的
个与
互质的数。
则只需证
在
意义下 是
的一个排列。
只需要观察两点:
。证明: 考虑反证。
时
,显然与
矛盾。
。证明: 考虑反证。若存在
,则
,由 Euler 定理则
,显然与
矛盾。
这两点足以证明
在
意义下是
的一个排列。
- 若
为什么你不去打表呢?出题人懂这个结论,但你觉得这个结论是你赛场上当场能推出来的吗?(本校 push ,外校爸爸忽略这句)
E 背景
很常见的结论。
证明:
离散课老师似乎已经把证明讲烂了。
F 位反转
没什么新意的暴力,可暴力可 DP 。
DP 很短很好写。
考虑一个二的幂次 。
考虑一个数 右移一位得到
。实际上相当于
左移一位得到
。
于是 右移一位得到
。最高位补上
的最低位:
即可。
于是
很精悍。
G sqrt
不常见的结论。
双指针套 st 表查一下最小的 。
只需暴力往后找到一个 。
由质数定理 可以在
次枚举找到。质数判断的优化算法随意,理论上
的算法就足够了。
数据应该是 忘记描述且错误描述所以锅卡了 inf = 0x3f3f3f3f ……抱歉,实际数据里没有放找不到 d 的情况。
然后是:
-
有解。
证明: 若
,常数次枚举一下就有解。
-
为奇质数。
和
是充要的。
和
是充要的。
证明:
充分性:
若
是奇质数,一定存在原根
满足
的阶
。
于是任取某个原根为
,会有
是
的一个既约剩余系。又
,于是
是
的一个完全剩余系,于是
。
若
,简单变形
。
于是
可以开根,
即是一个解。
若
,
,显然与
矛盾,于是
不能开根。
必要性:
若
有
,由
是奇质数则有
。
-
为奇质数。
有且仅有两个解
。
证明: 由
根据 Euler 定理有
。显然
。
H 同余打标记
看上去就很显然的根号分治。
同余只是为了卡掉调和做法,这个 idea 是很久以前听说的,大概率有类似的原题。
模数大于 ,取值次数将小于
。暴力修改。
模数小于 ,对模
余
打标记。查询
只需要枚举根号个模数计算
。
有佬笃定弱校不会出数据,断言测试里只出了 的数据卡 naive 的暴力。特判掉这个点用 naive 暴力过了。
后来验题人说可以分类讨论造数据,一组单增,一组单减,一组先增后减,一组先减后增,一组纯卡 naive 暴力,一组纯卡只打标记。
大家以后打弱校的比赛可以试试对数据分类讨论 AC 。
参考 wls 的爆论“没有金牌不要出题”,dreammoon 的“关于出题人不懂出题这档事”,虽然这些是对标大型比赛的。但确实太难卡了对不起。
此外,出题人确实有尽自己能力去卡了数据,验题人也很尽责的测过了暴力做法。一场比赛的数据强度会严重影响这场比赛的公平性,以人格纯洁与尊严发誓,我们不会承认任何有关“不会故意把数据卡得很死”言论,而是只能表述在能力范围内“尽可能把数据卡死了”。
指出包括但不限于题面描述错误、数据存在问题的绝大多数参赛者都非常友善,非常感谢大家。
卡死数据需要很强的功底,非常抱歉,能力有限。再次感谢大家的宽容,也欢迎大家赐教卡数据的技巧。