题目

为什么看到很多题解区的 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;
}

最后安利一下 本蒟蒻的博客

最新文章

  1. mongodb(分片)
  2. java-通讯stocket插件mina实例
  3. 数据库事务 及ACID
  4. javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)
  5. MyEclipse10导入工程jsp报错问题
  6. PHP代码实现MySQL读写分离
  7. HDOJ/HDU 1075 What Are You Talking About(字符串查找翻译~Map)
  8. 利用php的ob缓存机制实现页面静态化
  9. MSP430F149模拟IIC读写24C02程序
  10. Eclipse用法和技巧二十七:定义自己的快速联想词
  11. 每天一个Linux命令(23)--linux 目录结构(一)
  12. Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
  13. python列表反转
  14. Autofac高级用法之动态代理
  15. Android图表库MPAndroidChart(十二)——来点不一样的,正负堆叠条形图
  16. MYSQL根据节点向上和向下查询所有节点
  17. 利用iftop找出是谁占用了带宽
  18. [转]SQL中的case when then else end用法
  19. CI入门
  20. 【Java】浅谈HashMap

热门文章

  1. 小程序地图开发周边信息POI展示为列表
  2. tools.eclipse.内存配置
  3. 126-PHP类__get()魔术方法
  4. 【数据结构】C++语言无锁环形队列的实现
  5. “战疫”需求不再等-京东云与AI【应急资源信息发布平台】召集开发者共同支援
  6. kafka管理神器-kafkamanager
  7. Android数据库(sqlite)之Room
  8. UVA - 1001 Say Cheese(奶酪里的老鼠)(flod)
  9. 四、SAP中转义字符的使用和不同数据类型所占长度不同
  10. CountDownLatch、CyclicBarrier、Semaphore的使用