题解 P4942 【小凯的数字】
为什么看到很多题解区的 dalao 都用逆元?是我太菜了吧
【分析】
首先,根据弃九验算法的原理,显然可以得到:一个 \(n\) 位数
\(a_1a_2a_3\dots a_n\equiv a_1+a_2+a_3+\dots+a_n(\mod 9)\)
证明:
对于第 \(k\) 位数 \(a_k\) ,它对答案的贡献为\(10^{n-k}\times a_k\%9(n\geq k)\)
当 \(n=k\) 时 \(10^{n-k}=10^{n-n}=1\)
当 \(n>k\) 时 \(10^{n-k}=10^{n-k-1}\times 10\equiv 10^{n-k-1}\times 1\equiv\dots\equiv 10^0=1(\mod 9)\)
所以第 \(k\) 为的 \(a_k\) 贡献为 \(a_k\) 累计得到上式
而对于 \(89101112\) 这样的数字,也同等于:
\(89101112\equiv8+9+1+0+1+1+1+2\equiv8+9+10+11+12(\mod 9)\)
所以我们要求的东西就变为了 \(\displaystyle \sum_{i=l}^ri\%9\)
那么,我们设 \(\displaystyle Last(n)=\sum_{i=1}^ni\%9\)
答案即变为 \(Last(r)-Last(l-1)\) ,当然,记得取正数
现在,问题转变为求解 \(Last(n)\)
\(\displaystyle \because Last(n)=\sum_{i=1}^ni\%9\)
而且 \(1+2+3+4+5+6+7+8+9=45\equiv 0(\mod 9)\)
所以直接有 \(Last(n)=Last(n\% 9)\)
我们 \(9\) 以内的脑算打表,剩下的直接求解即可
【代码】
那本蒟蒻就放 我码风极丑的 代码了
#include<iostream>
using namespace std;
inline int read(int ans){
char c=getchar();
while(c<48||c>57) c=getchar();
while(c>=48&&c<=57){
ans+=(c-48);
c=getchar();
if(ans>=9) ans-=9;
}
return ans;
}
int ar_d_Lst[]={0,1,3,6,1,6,3,1,0};
int main(){
int q,l,r,ans;
cin>>q;
while (q--){
l=read(8),r=read(0);
ans=ar_d_Lst[r]-ar_d_Lst[l];
if(ans<0) cout<<ans+9<<endl;
else cout<<ans<<endl;
}
return 0;
}
最后安利一下 本蒟蒻的博客
题解 P4942 【小凯的数字】的更多相关文章
- P4942小凯的数字
给定一个序列,如12345 56789 1011121314等,输出对其取余9的结果. 那么我们需要明白一个定理,一个序列对一个数的取余结果等于它各位之和取余那个数的结果.证明似乎是这样∑i=0na ...
- 洛谷U32670 小凯的数字(比赛)
题目网址 https://www.luogu.org/problemnew/show/U32670 题目背景 NOIP2018 原创模拟题T1 NOIP DAY1 T1 or DAY 2 T1 难度 ...
- U32670 小凯的数字 数学
这是洛谷一个比赛中的一道题,和去年NOIP D1T1挺像.我看了一眼之后想“这不是小学奥数吗?求一个数字和就好了呀”...然后,60,剩下T了,gg. 只好看正解,但是一脸懵逼???然后看了证明,c* ...
- 题解 P3951 小凯的疑惑
P3951 小凯的疑惑 数论极菜的小萌新我刚看这题时看不懂exgcd做法的题解,后来在网上找到了一篇博客,感觉代码和推导都更加清新易懂,于是在它的基础上写了题解qwq 分析 两数互质,且有无限个,想到 ...
- 联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)
前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能 ...
- [洛谷P4942][题解]小凯的数字
这题打着高精的旗号其实是闹着玩的……(我不是题目) 数据范围就是提示你这题O(1)的 我们知道,一个数膜9的余数等于它数字和膜9的余数 我们可以把l到r加起来然后膜9 也就是(l+r)(r-l+1)/ ...
- 题解【洛谷P3951】[NOIP2017]小凯的疑惑
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...
- 2017提高组D1T1 洛谷P3951 小凯的疑惑
洛谷P3951 小凯的疑惑 原题 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想 ...
- P3951 小凯的疑惑
P3951 小凯的疑惑 题解 题意也就是求解不能用 ax+by 表示的最大数 ans(a,b,x,y,都是正整数) 给定 a ( =7 ) , b ( =3 ) 我们可以把数轴非负半轴上的数按照a的 ...
随机推荐
- 140-PHP类的抽象方法和继承
<?php abstract class father{ //定义一个抽象类 abstract public function test(); //定义抽象方法 } class son exte ...
- Spark 2.x 在作业完成时却花费很长时间结束
使用 Apache Spark 2.x 的时候可能会遇到这种现象:虽然 Spark Jobs 已经全部完成了,但是程序却还在执行.比如我们使用 Spark SQL 去执行一些 SQL,这个 SQL 在 ...
- (20)sopel算法
基础知识的理论,主要看这个博客:https://blog.csdn.net/github_38140310/article/details/68959931 然后代码展示: #include &quo ...
- element-ui实现自定义多个文件上传
这里强调下是:aixos是原始的,不要qs封装过的,不然不识别传值传不过去 <el-upload action="/admin/borrow/borrowEdit" list ...
- linux命令之strace简单使用
strace是什么 strace是一个可用于诊断.调试和教学的Linux用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进程状态变更等. 使用方式 strace 使用帮 ...
- Git的http与ssh配置
http 进入git bash 直接clone所需项目 通过http方式 eg:git clone http://xxxxxxxxxx/bk_linux_inspect-master.git 会弹出提 ...
- POJ 2251 Dungeon Master(三维空间bfs)
题意:三维空间求最短路,可前后左右上下移动. 分析:开三维数组即可. #include<cstdio> #include<cstring> #include<queue& ...
- ZOJ - 3961 Let's Chat(区间相交)
题意:给定一个长度为n的序列,A和B两人分别给定一些按递增顺序排列的区间,区间个数分别为x和y,问被A和B同时给定的区间中长度为m的子区间个数. 分析: 1.1 ≤ n ≤ 109,而1 ≤x, y ...
- JS常用的正则表达式包
结构: Code: /* 用途:检查输入的Email信箱格式是否正确 输入:strEmail:字符串 返回:如果通过验证返回true,否则返回false */ function checkEmail( ...
- bugku-Web flag.php
打开网页发现并没有什么,试了很多次没用. 其实题目中提示了hint,我们就传递一个hint=1试试,发现出现了代码: <?php error_reporting(0); include_once ...