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;
} 
posted @ 2021-11-12 22:12  SSZX_loser_lcy  阅读(46)  评论(0编辑  收藏  举报