Codeforces.468C.Hack it!(构造)
\(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!(构造)的更多相关文章
- Codeforces 468C Hack it!
https://www.luogu.org/problemnew/show/CF468C http://codeforces.com/contest/468/problem/C #include &l ...
- 「Codeforces 468C」Hack it!
Description 定义 \(f(x)\) 表示 \(x\) 的各个数位之和.现在要求 \(\sum_{i=l}^rf(i)\bmod a\). 显然 ans=solve(l,r)%a; if(a ...
- Codeforces 1383D - Rearrange(构造)
Codeforces 题面传送门 & 洛谷题面传送门 一道不算困难的构造,花了一节英语课把它搞出来了,题解简单写写吧( 考虑从大往小加数,显然第三个条件可以被翻译为,每次加入一个元素,如果它所 ...
- Codeforces 549B. Looksery Party[构造]
B. Looksery Party time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- codeforces 323A. Black-and-White Cube 构造
输入n 1 <= n <= 100 有一个n * n * n 的立方体,由n ^ 3 个1 * 1 * 1 的单位立方体构成 要用white 和 black 2种颜色来染这n ^ 3个立方 ...
- Codeforces Gym 100531I Instruction 构造
Problem I. Instruction 题目连接: http://codeforces.com/gym/100531/attachments Description Ingrid is a he ...
- codeforces 22C System Administrator(构造水题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud System Administrator Bob got a job as a s ...
- Codeforces 353D Queue(构造法)
[题目链接] http://codeforces.com/contest/353/problem/D [题目大意] 10^6个男女排队,每一秒,如果男生在女生前面,即pos[i]是男生,pos[i+1 ...
- Codeforces 482 - Diverse Permutation 构造题
这是一道蛮基础的构造题. - k +(k - 1) -(k - 2) 1 + k , 1 , k , 2, ....... ...
随机推荐
- Java面向对象(二)
一.封装 1.为什么要使用封装在类的外部直接操作类的属性是”不安全的"2.如何实现封装 1).属性私有化:设置属性的修饰符为private 2) .提供公共的set和get方法赋值 ...
- 对象存储服务(Object Storage Service,简称 OSS)
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.它具有与平台无关的RESTful API接口,能够提供99.99 ...
- “Error:(1, 1) java: 非法字符: '\ufeff'”错误解决办法
原因 用Windows记事本打开并修改.java文件保存后重新编译运行项目出现“Error:(1, 1) java: 非法字符: '\ufeff'”错误,如下图所示: 原来这是因为Window ...
- NHibernate:no persister for 异常
几种原因: 1.配置文件后缀名写错 mapping file 必须是.hbm.xml结尾 2.Web.config配置里面引用实体 <session-factory> .......... ...
- Windows配置Apache服务器
下载的Apache版本:httpd-2.4.32-o102n-x64-vc14 简单粗暴式配置: 1.打开\conf\httpd.conf修改第60行和第224行,其中8081是电脑上没有被使用的端口 ...
- [转] 简述js中 for in 与 for of 区别
for in是ES5标准,遍历key. for of是ES6标准,遍历value. for (var key in arr){ console.log(arr[key]); } for (var va ...
- [转] Meida视频加密二-Blob对象
2. blob 1 <video src="blob:http://www.bilibili.com/d0823f0f-2b2a-4fd6-a93a-e4c82173c107" ...
- POJ 3713 Transferring Sylla【Tarjan求割点】
题意:给出一个无向图,判断是否任意两点间都存在至少3条互相独立的路,独立指公共顶点只有起点和终点.算法:枚举每个点,删去后用Tarjan判断图中是否存在割点,如果存在则该图不满足三连通性.Tarjan ...
- 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)
本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...
- 【Android】application标签说明
<application> <application android:allowClearUserData=["true" | "false" ...