CF468C Hack it!

Solution

可以发现当 \(x\leq10^{18}\) 时, \(f(x)+1=f(10^{18}+x)\) ,令 \(g_x=\sum\limits_{i=1}^xf_i\) ,设 \(g_{10^{18}}\equiv b\pmod a\) ,则 \(l=1+a-b,r=10^{18}+a-b\) 。因为:

\[\begin{aligned}\sum\limits_{i=l}^rf_i&=g_r-g_{i-1}\\&=g_{10^{18}+a-b}-g_{a-b}\\&=g_{10^{18}}+(f_{10^{18}+1}-f_1)+\cdots+(f_{10^{18}+a-b}-f_{a-b})\\&=g_{10^{18}}+a-b\\&\equiv b+a-b\pmod a\\&\equiv0\pmod a\end{aligned} \]

image-20200929154920410

(忽略背景)

代码

#include<bits/stdc++.h>
#define ll long long

using namespace std;
ll l,r,a,INF=1e18;

int main(){
    scanf("%lld",&a);
    l=a-INF%a*9%a*9%a;
    r=l+INF-1;
    printf("%lld %lld\n",l,r);
    return 0;
}
posted @ 2020-09-29 15:58  jasony_sam  阅读(169)  评论(1编辑  收藏  举报