$ [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 ;
}
随机推荐
- 浅析调用android的content provider(一)
在Android下,查询联系人.通话记录等,需要用到content provider.但是,调用content provider时,Android框架内部是如何做的呢?这一系列文章就是 ...
- Hbase数据模型概念视图
- CSS长度单位:px和pt的区别
先搞清基本概念:px就是表示pixel,像素,是屏幕上显示数据的最基本的点:而pt就是point,是印刷行业常用单位,等于1/72英寸. 这样很明白,px是一个点,它不是自然界的长度单位,谁能说出一个 ...
- selenium webdriver学习(八)------------如何操作select下拉框(转)
selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver 下面我们来看一下selenium webdriv ...
- oracle整合简单,无关联的数据库访问
如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) 例如: SELECT NAME FROM EMP WHERE EMP_NO = 1234; SELECT NAM ...
- Element-ui学习笔记1
1.col,row布局注意事项 el-row el-col gutter就是css,span的时候宽度是按boder-box来计算. 将 type 属性赋值为 'flex',可以启用 flex 布局, ...
- kwargs.pop是什么意思
pop()函数一般用来删除list列表的末尾元素,同样,kwargs.pop()用来删除关键字参数中的末尾元素,比如:kwargs = {'Michael': 95, 'Bob': 75, 'Trac ...
- 2018-9-28-WPF-自定义-TextBoxView-的-Margin-大小
title author date CreateTime categories WPF 自定义 TextBoxView 的 Margin 大小 lindexi 2018-09-28 17:16:17 ...
- JS划重点——类和对象的不正经阐述
JS划重点--类和对象的不正经阐述 /在JS 类里面函数也是一个对象,那么要创建一个对象就需要一个类,这个类可以由这个对牛逼的对象-函数来实现/ /首先是普罗大众都会的 工厂模式来创建一类/ func ...
- js(三) ajax异步局部刷新技术底层代码实现
ajax 异步 javaScript and xml 开发五步骤: 1. 创建对象 XMLHttpRequest(chrome,firefox) ie... jquery 2. 找到连接, http的 ...