2024.7.10 鲜花

Idol

百度百科上的图,侵删。

[十二省联考 2019] 骗分过样例 题解 part 1

太多了,分两天,但我不会原根,而且原根部分意思不大,只有最后一个猜模数还是类似暴力,就不写了。

  1. 发现增长很快,可以猜测和幂次或阶乘有关,除一下前几个,结合题目可以发现是 \(19^x \bmod 998244353\),暴力即可。

  2. 和一一样,唯一需要的就是快速幂。

  3. 和一一样,但发现读入巨大,用欧拉定理手写快读边读边模即可。

  4. 可以猜测和一类似,发现前两个一样,但模数明显不同,考虑模数大概率是质数,直接枚举即可。

  5. 猜测和四类似,发现模数出其的大。

    好像是最难的点,可以考虑用两个接近的数并且小的答案大于大的,有模数是 \(ans_x\times 19^{y-x} -ans_y\) 的因数,虽然很大,但考虑范围有限,还是能很快求出。

    但是我们有 python!!!

    我们发现,数据中有两个极小的值,大约在 \(2000 \sim 5000\),用 python 直接跑出答案,减掉 \(ans\) 就是模数倍数,求 \(\gcd\) 即可。

  6. 发现题目中有一个 wa ,发现有负数,可以猜到是取模不及时导致的溢出,尝试几种溢出可知是暴力算的时候取模不及时,直接暴力即可。

  7. 发现数据巨大,根本无法暴力,因为有溢出,不能快速幂。

    考虑对 \(2^{32}\) 取模后对 \(998244353\) 取模,应该有一个较小的循环节,数据证明只有 \(45699\) 个数,和一段头,直接暴力整就好。

图——from 匿名

posted @ 2024-07-11 07:28  xrlong  阅读(57)  评论(4编辑  收藏  举报