$ [Contest \#4]$求和 思博题
正解:
解题报告:
一道看起来是数位$dp$其实并不是的题$QwQ$
首先求$\sum_{l}^r$就变成$\sum_1^r-\sum_1^{l-1}$不说$QwQ$.现在就只要求$\sum_{i=1}^n f(n)$了$QwQ$
考虑固定前缀,只改变个位数,因为个位数的贡献为1,所以$f$的贡献也会各不相同,又因为$f\in[0,9]$,所以$[1,9],[10,19],[20,21],...$的贡献就都是45.
(开始呆呆$lq$还懵了一下,,,想着为啥不是$[1,10],[11,20],...$这样儿的.然后就想起了固定前缀$kk$
于是现在$\sum_{i=1}^n f(n)$就变形为了,$45\cdot \frac{n+1}{10}+\sum_{i=\frac{n+1}{10}\cdot 10}^n f(n)$
现在只要考虑求$\sum_{i=\frac{n+1}{10}\cdot 10}^n f(n)$.
依然是前面说的,固定前缀后只有个位数改变时.因为个位数贡献为1,所以相差在不膜10的意义下也一定是1.
所以求一个其他递推出来就成$QwQ$
$over$
这题主要就是要发现关于这个$f$的几个奇奇怪怪的性质$QwQ$.
嗷记得开$ll$鸭
- #include<bits/stdc++.h>
- using namespace std;
- #define il inline
- #define gc getchar()
- #define int long long
- #define ri register int
- #define rb register bool
- #define rc register char
- #define rp(i,x,y) for(ri i=x;i<=y;++i)
- #define my(i,x,y) for(ri i=x;i>=y;--i)
- int d[];
- il int read()
- {
- rc ch=gc;ri x=;rb y=;
- while(ch!='-' && (ch>'' || ch<''))ch=gc;
- if(ch=='-')ch=gc,y=;
- while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
- return y?x:-x;
- }
- il int f(ri x)
- {
- ri cnt=;memset(d,,sizeof(d));
- while(x){d[++cnt]=x%,x/=;}
- while(cnt>){rp(i,,cnt-)d[i]=(d[i]+d[i+])%;--cnt;while(!d[cnt] && cnt>)--cnt;}
- return d[];
- }
- il int cal(ri x){ri d1=(x+)/,d2=d1*,ret=f(d2),as=d1*;while(d2<=x)as+=ret,(++ret)%=,++d2;return as;}
- signed main()
- {
- //freopen("1076.in","r",stdin);freopen("1076.out","w",stdout);
- ri T=read();
- while(T--){ri l=read(),r=read();printf("%lld\n",cal(r)-cal(l-));}
- return ;
- }
随机推荐
- 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google
摘要: 作为此次Gartner报告中唯一上榜的中国科技公司,阿里云获得六个评判维度的最高分,排名第二 近日,知名调研机构Gartner发布了全球领先公共云厂商区块链服务能力报告,作为唯一上榜的中国科技 ...
- @codeforces - 141E@ Clearing Up
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个 N 个点 M 条边的图,每条为黑色或者白色. 现在让你 ...
- LeetCode80 Remove Duplicates from Sorted Array II
题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? (Mediu ...
- 从零学React Native之02状态机
本篇文章首发于简书 欢迎关注 之前我们介绍了RN相关的知识: 是时候了解React Native了 从零学React Native之01创建第一个程序 本篇文章主要介绍下下面的知识: 1.简单界面的搭 ...
- 知识点补充,set集合,深浅copy
一:对之前知识点的补充 1;字符串(str)中的join方法.把列表转换成字符串 2;列表list[ ]和字典dic{ }在循环过程中不能字节删除.需要把要删除的内容记录在新列表中.然后在循环新列表, ...
- @游记@ THUWC2019
目录 @day -???@ @day -30~-1@ @day 0@ @day 1@ @day 2@ @day 3@ @day -???@ 我这个蒟蒻居然收到了 THUWC 的邀请? 那就去试试运气吧 ...
- 一些关于中国剩余定理的数论题(POJ 2891/HDU 3579/HDU 1573/HDU 1930)
2891 -- Strange Way to Express Integers import java.math.BigInteger; import java.util.Scanner; publi ...
- oralce 减少访问数据库的次数
当执行每条SQL语句时, ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等等. 由此可见, 减少访问数据库的次数 , 就能实际上减少ORACLE的工作 ...
- 割点(tarjan)
对于根来说,如果它有超过1棵子树,那么它是一个割点 对于非叶结点来说,如果它的某一个儿子没有回边能到达高于它的点,那么它是一个割点 叶节点不是割点 //洛谷3388 #include<algor ...
- HDU 1251 裸的字典树、入门题
裸的字典树还是挺简单的. 四个基本操作建立.查找.插入.删除 建立新结点我是用的c++中 new操作.当然也可以用malloc,都方便 不过指针阿.地址阿.这其中关系什么的我貌似还不是很清楚阿. 因为 ...