[Comet OJ - Contest #4 D][39D 1584]求和_"数位dp"
求和
题目大意:
数据范围:
题解:
脑筋急转弯可还行.....
我们发现只需要最后枚举个位/xk/xk
因为前面的贡献都是确定的了。
故此我们最后暴力统计一下就好咯。
不知道为啥我组合数一直过不去,暴力求过了呜呜。
代码:
#include <bits/stdc++.h> using namespace std; typedef long long ll; char *p1, *p2, buf[100000]; #define nc() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2) ? EOF : *p1 ++ ) ll rd() {
ll x = 0;
int f = 1;
char c = nc();
while (c < 48) {
if (c == '-')
f = -1;
c = nc();
}
while (c > 47) {
x = (((x << 2) + x) << 1) + (c ^ 48), c = nc();
}
return x * f;
} int a[20], cnt, b[20]; ll C[20][20]; void init() {
C[0][0] = 1;
for (int i = 1; i <= 19; i ++ ) {
C[i][0] = 1;
for (int j = 1; j <= i; j ++ ) {
C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % 10;
}
}
} inline ll f(ll x) {
cnt = 0;
while (x) {
a[ ++ cnt] = x % 10;
x /= 10;
}
ll mdl = 0;
for (int i = cnt; i >= 2; i -- ) {
(mdl += C[cnt - 1][i - 1] * a[i] % 10) %= 10;
}
return mdl;
} // inline ll f(ll x) {
// cnt = 0;
// for (; x; x /= 10)
// a[cnt ++ ] = x % 10;
// reverse(a, a + cnt);
// while(cnt != 1) {
// int m = 0;
// for (int i = 1; i < cnt; i ++ ) {
// int c = (a[i] + a[i-1]) % 10;
// if(!m && !c) continue;
// b[m ++ ] = c;
// }
// if (!m)
// b[m ++ ] = 0;
// cnt = m;
// for (int i = 0; i < cnt; i ++ )
// a[i] = b[i];
// }
// return a[0];
// } ll calc(ll x) {
if (x < 10ll) {
return (x + 1) * x / 2;
}
ll ans = x / 10 * 45;
ll mdl = f(x / 10 * 10);
// cout << mdl << endl ;
int tmp = x % 10;
for (int i = 0; i <= tmp; i ++ ) {
ans += (mdl + i) % 10;
}
return ans;
} int main() {
int T = rd();
init();
while (T -- ) {
ll l = rd(), r = rd();
printf("%llu\n", calc(r) - calc(l - 1));
}
return 0;
}
小结:真·脑筋急转弯.....
[Comet OJ - Contest #4 D][39D 1584]求和_"数位dp"的更多相关文章
- 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 我们可以感性理解一下, ...
随机推荐
- MFC GDI绘图
DC——MFC设备描述表类(也叫设备环境.设备上下文).默认起始点(0,0),带To的函数会移动起始点到指定位置. 新建单个文档的MFC应用程序,类视图——View项的属性——消息,WM_PAINT, ...
- BZOJ 2982 combination 脑子+组合数学
可以发现,整个数列构成一个树形结构,并且是个完全二叉堆(小根堆). 并且这个堆的形态在给定$n$后是固定的,第1个位置上显然只能放1. 对子树的根来说,他自己是所分得的数集中最小的那个,所以从剩下$s ...
- 微信小程序填坑之旅(2)-wx.showLoading的时候,仍能点击穿透,造成重复点击button的问题
解决办法:mask =true wx.showLoading({ title: '正在上传...', mask:true, })
- 并发编程入门(二):分析Boost对 互斥量和条件变量的封装及实现生产者消费者问题
请阅读上篇文章<并发编程实战: POSIX 使用互斥量和条件变量实现生产者/消费者问题>.当然不阅读亦不影响本篇文章的阅读. Boost的互斥量,条件变量做了很好的封装,因此比" ...
- conda 激活环境失败解决办法
https://stackoverflow.com/questions/41746137/conda-environment-is-discoverable-but-not-activateable- ...
- 理清gcc、libc、libstdc++的关系
当你在linux下写C/C++代码的时候,是不是会遇到许多编译链接的问题? 时不时报个glibc,gcc,g++等相关的错误? 很多时候都无从下手,而且比较混乱. 这也是编译链接过程中经常出现的问题. ...
- python3版 爬虫了解
摘要:本文将使用Python3.4爬网页.爬图片.自动登录.并对HTTP协议做了一个简单的介绍.在进行爬虫之前,先简单来进行一个HTTP协议的讲解,这样下面再来进行爬虫就是理解更加清楚. 一.HTTP ...
- Codeforces 940 E.Cashback (单调队列,dp)
Codeforces 940 E.Cashback 题意:一组数,要分为若干个区间,每个区间长度为ki(1<=ki<=n),并且对于每个区间删去前ki/c(向下取整)个小的数(即对区间升序 ...
- Java中String、StringBuffer、StringBuilder
String 对象 String 创建机制 String 是 Java 语言中非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑,由源码可知,它是典型的 Immutable (不可变)类,被fi ...
- 发布jar项目到maven仓库
在要发布的项目pom文件中添加配置: <distributionManagement> <repository> <id>releases</id> & ...