传送门
这道题是个毒瘤题,花费了博主1day独立解决了16个子任务。下面步入正题。
\(\text{subtask 1-3:1_998244353}\)
这个观察数据不难得出要求\(19^x\bmod 998244353\),直接搞即可。注意到可能\(x\)非常大,根据费马小定理\(x^{P-1} \equiv 1 \pmod P\),我们需要读入取模。
\(\text{subtask 4:1?}\)
观察数据和提示告诉我们:仍然求\(19^x\),只不过模数不知道。发现输出文件的最大值在\(10^6\)左右,我们拿第一个输入直接爆搜检验,最后能找出来\(P=1145141\)。
\(\text{subtask 5:1?+}\)
这个是前一个的加强版,发现模数在\(5\times 10^{18}\)左右,这个不好暴力了。怎么办呢?我把输入的数排了个序,发现有两组输入的\(x\)之差为\(2\),于是我找到这两组对应的输出,得到了:\(19^{264708066}\equiv 1996649514996338529 \pmod P\)和\(19^{264708068}\equiv 1589589654696467295 \pmod P\)。也就是说上面的式子乘上\(19^2\)再取模就能得到下面的数字,于是我们得到了:\(1996649514996338529\times 19^2 \equiv 1589589654696467295 \pmod P\)。然后改写这个式子:\(1996649514996338529\times 361-nP=1589589654696467295\),把常数移到右边,发现在\(long\ long\)范围内无法算出,我用\(long\ double\)算出了近似值。然后\(P\)一定是这个数的一个因子。发现\(n\)在\(100\)到\(200\)左右,就暴力试除,考虑到精度又将\(\pm 1000\)的模数用第一组输入输出判断了一下,最后找到了模数\(P=5211600617818708273\)。