2024.7.10 鲜花
Idol
百度百科上的图,侵删。
[十二省联考 2019] 骗分过样例 题解 part 1
太多了,分两天,但我不会原根,而且原根部分意思不大,只有最后一个猜模数还是类似暴力,就不写了。
-
发现增长很快,可以猜测和幂次或阶乘有关,除一下前几个,结合题目可以发现是 \(19^x \bmod 998244353\),暴力即可。
-
和一一样,唯一需要的就是快速幂。
-
和一一样,但发现读入巨大,用欧拉定理手写快读边读边模即可。
-
可以猜测和一类似,发现前两个一样,但模数明显不同,考虑模数大概率是质数,直接枚举即可。
-
猜测和四类似,发现模数出其的大。
好像是最难的点,可以考虑用两个接近的数并且小的答案大于大的,有模数是 \(ans_x\times 19^{y-x} -ans_y\) 的因数,虽然很大,但考虑范围有限,还是能很快求出。
但是我们有 python!!!
我们发现,数据中有两个极小的值,大约在 \(2000 \sim 5000\),用 python 直接跑出答案,减掉 \(ans\) 就是模数倍数,求 \(\gcd\) 即可。
-
发现题目中有一个 wa ,发现有负数,可以猜到是取模不及时导致的溢出,尝试几种溢出可知是暴力算的时候取模不及时,直接暴力即可。
-
发现数据巨大,根本无法暴力,因为有溢出,不能快速幂。
考虑对 \(2^{32}\) 取模后对 \(998244353\) 取模,应该有一个较小的循环节,数据证明只有 \(45699\) 个数,和一段头,直接暴力整就好。
图——from 匿名
本文来自博客园,作者:xrlong,转载请注明原文链接:https://www.cnblogs.com/xrlong/p/18295296
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。