CF 468C Hack it! 【构造】【数论】
前言
既期望神仙题后,又有了构造神仙题的出现。
正题
传送门
看到这道题,很多人都无处下手,因为数据太强了。
但是,我们可以用神仙做法来对抗神仙题。
首先观察一个性质:
\[f(x)=y+1
\]
\[f(x+10^{18})=f(x)+1=y+1
\]
得出:
\[\sum_{i=x}^{x+10^{18}}{f(i)=\sum_{i=0}^{10^{18}}{f(i)}+x}
\]
设:
\[\sum_{i=0}^{10^{18}-1}{f(i)} \equiv p (mod a)
\]
\[\sum_{i=1}^{10^{18}}{f(i)\equiv p+1}
\]
\[\sum_{i=2}^{10^{18}+1}{f(i)} \equiv p+2
\]
以此类推:
\[\sum_{i=a-p}^{10^{18}+a-p-1}{f(i)} \equiv p+a-p \equiv 0
\]
所以说:
我们就要找p:
\[p=45\times 10^{17}+10\times \sum_{i=0}^{10^{17}-1}{f(i)}
\]
\[p=45\times 10^{17}+10\times {45\times 10^{16}}+100\times \sum_{i=0}^{10^{16}-1}{f(i)}
\]
\[\cdots
\]
\[p=18\times 45\times 10^{17}
\]
\[p=81\times 10^{18}
\]
代码:
点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define int unsigned long long
int l,r,mod,inf=1e18;
signed main(){
cin>>mod;
l=mod-inf%mod*9ll%mod*9ll%mod;
r=l+inf-1;
cout<<l<<' '<<r<<endl;
return 0;
}