Comet OJ C1076 [Contest #4]求和
题目
首先我们可以通过经典容斥转化为计算\([1,x]\)的答案。
现在我们考虑一个数的个位对答案的贡献。
每做一次操作都会让个位加上十位然后取模,直到只有个位为止。
我们发现这个过程中,个位数前的系数永远都是\(1\),也就是个位数对答案的贡献系数为\(1\)。
这意味着我们对于一个固定的只有个位没确定的数,我们枚举其个位\(0\sim9\),其答案也是\(0\sim9\),所以我们可以直接求出\([1,\lfloor\frac n{10}\rfloor*10-1]\)的答案为\(\lfloor\frac n{10}\rfloor*45\)。
然后剩下\(n\mod10+1\)个数,直接计算很不优秀。
我们先暴力计算\(t=f(\lfloor\frac n{10}\rfloor)\),那么\(f(\lfloor\frac n{10}\rfloor)+i=t+i(i\in[0,9])\),这样只用暴力算一次,非常优秀。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[19];
int f(ll x)
{
int len=0,i;
while(x) a[++len]=x%10,x/=10;
while(len^1)
{
for(i=1;i<len;++i) a[i]=(a[i]+a[i+1])%10;
for(--len;!a[len]&&len^1;--len);
}
return a[len];
}
ll cal(ll x)
{
if(x<10) return x*(x+1)/2;
ll s=x/10*45;int o=x%10,i,t=f(x/10*10);
for(i=0;i<=o;++i) s+=(t+i)%10;
return s;
}
int main()
{
int T;ll l,r;
for(scanf("%d",&T);T;--T) scanf("%lld%lld",&l,&r),printf("%lld\n",cal(r)-cal(l-1));
}
Comet OJ C1076 [Contest #4]求和的更多相关文章
- Comet OJ - Contest #2 简要题解
Comet OJ - Contest #2 简要题解 cometoj A 模拟,复杂度是对数级的. code B 易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{( ...
- Comet OJ - Contest #2简要题解
Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/ ...
- Comet OJ - Contest #4--前缀和
原题:Comet OJ - Contest #4-B https://www.cometoj.com/contest/39/problem/B?problem_id=1577传送门 一开始就想着暴力打 ...
- Comet OJ - Contest #11 题解&赛后总结
Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最 ...
- Comet OJ - Contest #8
Comet OJ - Contest #8 传送门 A.杀手皇后 签到. Code #include <bits/stdc++.h> using namespace std; typede ...
- Comet OJ - Contest #13-C2
Comet OJ - Contest #13-C2 C2-佛御石之钵 -不碎的意志-」(困难版) 又是一道并查集.最近做过的并查集的题貌似蛮多的. 思路 首先考虑,每次处理矩形只考虑从0变成1的点.这 ...
- Comet OJ - Contest #13 「火鼠的皮衣 -不焦躁的内心-」
来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 ...
- Comet OJ - Contest #13 「佛御石之钵 -不碎的意志-」(hard)
来源:Comet OJ - Contest #13 一眼并查集,然后发现这题 tmd 要卡常数的说卧槽... 发现这里又要用并查集跳过访问点,又要用并查集维护联通块,于是开俩并查集分别维护就好了 一开 ...
- Comet OJ - Contest #5
Comet OJ - Contest #5 总有一天,我会拿掉给\(dyj\)的小裙子的. A 显然 \(ans = min(cnt_1/3,cnt_4/2,cnt5)\) B 我们可以感性理解一下, ...
随机推荐
- 【SaltStack官方版】—— STORING JOB RESULTS IN AN EXTERNAL SYSTEM
STORING JOB RESULTS IN AN EXTERNAL SYSTEM After a job executes, job results are returned to the Salt ...
- 【mysql】利用全文索引实现中文的快速查找
现在我们数据库表中的记录大约在17万,每一条记录都有name字段,根据name做模糊匹配,效率非常低下. 表结构如下: create table T ( id int, name ) ); 总数据量如 ...
- MySQL 运维管理平台
github: https://github.com/XiaohaoYu/mysql_platform
- antd不可选择时间
//不能选择今天之前的日期<DatePicker format={this.timeFormat} showTime placeholder="项目结束日期" disable ...
- artTemplate字符串模板
1.官网:http://aui.github.io/art-template/
- #417 Div2 Problem B Sagheer, the Hausmeister (DFS && 枚举)
题目链接:http://codeforces.com/contest/812/problem/B 题意 : 给出一个 n (1 ≤ n ≤ 15)层的教学楼, 每一层楼包含 m (1 ≤ m ≤ 10 ...
- jenkins 管理员密码重置
jenkins管理员 admin的密码忘记怎么重置呢? 修改admin的加密密码为123456的加密密码 #jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNp ...
- CodeChef-----February Challenge 2018---Broken Clock(极坐标+三角函数递推+矩阵快速幂)
链接: https://www.codechef.com/FEB18/problems/BROCLK Broken Clock Problem Code: BROCLK Chef has a clo ...
- m3u8直播测试地址
调试m3u8的时候需要测试地址 找了几个,备用一下 安徽卫视 http://stream2.ahtv.cn/ahws/cd/live.m3u8经济生活 http://stream2.ahtv.cn/j ...
- layui table指定某一行样式
1.想指定layui table中某一行的样式,找了这个资源可行.转自: https://blog.csdn.net/weixin_44729896/article/details/100524824 ...