题目链接

\(dls\)出的比赛诶...这么妙。


\(Description\)

令\(f(x)\)表示整数\(x\)在十进制下各个数位的数字之和。给定\(a\),求两个整数\(l,r\),使得\(\sum_{i=l}^rf(i)\equiv0\ (\mathbb{mod}\ a)\)。

\(1\leq a\leq10^{18},\ 1\leq l\leq r\leq10^{200}\),保证存在解。

\(Solution\)

考虑一个简单的性质:\(f(x+10^y)=f(x)+1,\ x\lt10^y\)。

不妨令\(INF=10^{18}\),设\(\sum\limits_{i=0}^{INF-1}f(i)\equiv p\ (\mathbb{mod}\ a)\)。

由上面的性质可知,\(\sum\limits_{i=1}^{INF}f(i)=p-f(0)+f(INF)=p+1\)。

同理还有:\(\sum\limits_{i=2}^{INF+1}f(i)=p+2...\ \sum\limits_{i=k}^{INF+k-1}f(i)=p+k\)(都是模\(a\)意义下)。

然后就可以构造出\(a=p+a-p=\sum\limits_{i=a-p}^{INF+a-p-1}f(i)\)。所以令\(l=a-p,\ r=10^{18}+a-p-1\)就可以啦。

有个问题是求\(\sum_{i=0}^{10^{18}-1}f(i)\ \mathbb{mod}\ a\)。展开一下:$$\begin{aligned}\sum_{i=0}{10{18}-1}f(i)&=(1+2+...+9)10{17}+10\times\sum_{i=0}{10{17}-1}f(i)\&=45\times10{17}+10(45\times10{16}+10\times\sum_{i=0}{10{15}-1}f(i))\&=...\&=18\times45\times10{17}=81\times10^{18}\end{aligned}$$

这样就做完啦。

还有个做法是,考虑有\(\sum\limits_{i=1+x}^{10^y+x}f(i)-\sum\limits_{i=1}^{10^y}f(i)=x,\ x\lt10^y\)。枚举\(y\),如果有\(a-\sum\limits_{i=0}^{10^y}<10^y\),令\(x\)等于这个数,就有\(\sum\limits_{i=1+x}^{10^y+x}f(i)=\sum\limits_{i=0}^{10^y}+a-\sum\limits_{i=0}^{10^y}=a\)了。

需要预处理一下\(\sum_{i=1}^{10^y}f(i)\),因为是上限\(10\)的幂所以算一下每个数出现次数即可(或者像上面一样直接算)。


#include <cstdio>
typedef long long LL;
const LL INF=1e18; int main()
{
LL a; scanf("%I64d",&a);
LL l=a-INF*9%a*9%a;
printf("%I64d %I64d\n",l,INF+l-1); return 0;
}

Codeforces.468C.Hack it!(构造)的更多相关文章

  1. Codeforces 468C Hack it!

    https://www.luogu.org/problemnew/show/CF468C http://codeforces.com/contest/468/problem/C #include &l ...

  2. 「Codeforces 468C」Hack it!

    Description 定义 \(f(x)\) 表示 \(x\) 的各个数位之和.现在要求 \(\sum_{i=l}^rf(i)\bmod a\). 显然 ans=solve(l,r)%a; if(a ...

  3. Codeforces 1383D - Rearrange(构造)

    Codeforces 题面传送门 & 洛谷题面传送门 一道不算困难的构造,花了一节英语课把它搞出来了,题解简单写写吧( 考虑从大往小加数,显然第三个条件可以被翻译为,每次加入一个元素,如果它所 ...

  4. Codeforces 549B. Looksery Party[构造]

    B. Looksery Party time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  5. codeforces 323A. Black-and-White Cube 构造

    输入n 1 <= n <= 100 有一个n * n * n 的立方体,由n ^ 3 个1 * 1 * 1 的单位立方体构成 要用white 和 black 2种颜色来染这n ^ 3个立方 ...

  6. Codeforces Gym 100531I Instruction 构造

    Problem I. Instruction 题目连接: http://codeforces.com/gym/100531/attachments Description Ingrid is a he ...

  7. codeforces 22C System Administrator(构造水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud System Administrator Bob got a job as a s ...

  8. Codeforces 353D Queue(构造法)

    [题目链接] http://codeforces.com/contest/353/problem/D [题目大意] 10^6个男女排队,每一秒,如果男生在女生前面,即pos[i]是男生,pos[i+1 ...

  9. Codeforces 482 - Diverse Permutation 构造题

    这是一道蛮基础的构造题. - k         +(k - 1)      -(k - 2) 1 + k ,    1 ,         k ,             2,    ....... ...

随机推荐

  1. 如何在PDF中添加水印,PDF添加水印技巧

    PDF文件现在的使用很是普遍,不管是工作中还是学习中都会使用到PDF文件,制作一个PDF文件就很辛苦的,我们要是想把PDF文件中添加水印防止抄袭的时候应该要怎么做呢,其实吧PDF文件添加水印还挺简单的 ...

  2. FCN 项目部分代码学习

    下面代码由搭档注释,保存下来用作参考. github项目地址:https://github.com/shekkizh/FCN.tensorflowfrom __future__ import prin ...

  3. 20165206 2017-2018-2 《Java程序设计》第8周学习总结

    20165206 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 进程:进程是程序的一次动态执行过程,对应了从代码加载.执行至执行完毕的一个完整过程,这个过程 ...

  4. k-近邻算法-手写识别系统

    手写数字是32x32的黑白图像.为了能使用KNN分类器,我们需要把32x32的二进制图像转换为1x1024 1. 将图像转化为向量 from numpy import * # 导入科学计算包numpy ...

  5. Python入门:求1-2+3-4+5...99的所有数的和

    num =1 sum =0 while num <=99: if num % 2 ==1: sum = sum + num num =num +1 print(sum) 2.求1-2+3-4+5 ...

  6. 指定的参数已超出有效值的范围。参数名:sit ,先仔细看看错误和我的一样不一样

    控制面板>程序>

  7. Tarjan算法【强连通分量】

    转自:byvoid:有向图强连通分量的Tarjan算法 Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树.搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断 ...

  8. chkconfig命令 centos 开机启动命令

    .利用 chkconfig 来配置启动级别 在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后系统默认不会自动启动的.就算手动执行 / ...

  9. HTML5漫谈(7)——如何保护HTML5应用代码

    独家供稿:移动Labs HTML5应用采用的仍然是Javascript(JS).HTML.CSS 等Web语言,因而其代码保护就是这些Web代码的保护,而HTML5应用主要功能一般采用JS实现,因此J ...

  10. net core体系-web应用程序-4net core2.0大白话带你入门-3asp.net core项目架构和配置文件解读

    asp.net core web项目目录解读   Connected Services 和传统.net web项目相比,它的功能类似于添加webservice或者wcf service的引用.暂时用不 ...