当前位置: 首页 > news >正文

广州旅游网站建设设计/百度推广怎么做的

广州旅游网站建设设计,百度推广怎么做的,南宁广告网页设计人才招聘,襄樊网站制作公司Description 题库链接 问你 \([l,r]\) 区间内所有整数中各个数码出现了多少次。 \(1\leq a\leq b\leq 10^{12}\) Solution 数位 \(DP\) 。 定义一个函数 \(cal(i)\) 为求 \([1,i)\) 中所有整数各个数码的和。显然答案就是 \(cal(r1)-cal(l)\) 。 考虑如何求 \(cal(x)\) 。 先考…

Description

题库链接

问你 \([l,r]\) 区间内所有整数中各个数码出现了多少次。

\(1\leq a\leq b\leq 10^{12}\)

Solution

数位 \(DP\)

定义一个函数 \(cal(i)\) 为求 \([1,i)\) 中所有整数各个数码的和。显然答案就是 \(cal(r+1)-cal(l)\)

考虑如何求 \(cal(x)\)

先考虑数的位数小于 \(x\) 的情况。假设 \(x\) 的总位数为 \(tot\) 。我们可以从 \(1\sim tol-1\) 来枚举最高位。对于每次枚举的最高位 \(i\) ,显然最高位上的每个数都会计算 \(10^{i-1}\) 次, \(0\) 除外。再考虑以其为最高位开头。之后的所有数码产生的新贡献为 \(9(i-1)\cdot 10^{i-2}\) 其中 \(9\) 表示最高位有 \([1,9]\)\(9\) 个数; \(i-1\) 表示之后共有 \(i-1\) 位。 \(10^{i-2}\) 指的是每一位会产生贡献(推推式子可以证明后面的每一位的数码出现频率是相同的)。

最高位等于 \(tot\) 的情况和上面是类似的,假设 \(x_i\)\(x\) 的第 \(i\) 位上的数字。显然对于小于 \(x_i\) 的所有数码(包括除最高位外的 \(0\) ),都会计算 \(10^{i-1}\) 次。而 \(x_i\) 只会计算 \(last\) 次,其中 \(last\)\(i\) 位之后的数字;之后的所有数码产生的新贡献和上面类似,详可见代码。

Code

//It is made by Awson on 2018.2.28
#include <bits/stdc++.h>
#define LL long long
#define dob complex<double>
#define Abs(a) ((a) < 0 ? (-(a)) : (a))
#define Max(a, b) ((a) > (b) ? (a) : (b))
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Swap(a, b) ((a) ^= (b), (b) ^= (a), (a) ^= (b))
#define writeln(x) (write(x), putchar('\n'))
#define lowbit(x) ((x)&(-(x)))
using namespace std;
void read(LL &x) {char ch; bool flag = 0;for (ch = getchar(); !isdigit(ch) && ((flag |= (ch == '-')) || 1); ch = getchar());for (x = 0; isdigit(ch); x = (x<<1)+(x<<3)+ch-48, ch = getchar());x *= 1-2*flag;
}
void print(LL x) {if (x > 9) print(x/10); putchar(x%10+48); }
void write(LL x) {if (x < 0) putchar('-'); print(Abs(x)); }LL x, y, cnt[15];void cal(LL x) {LL a[20], tot = 0, mi = 1, last = 0; while (x) a[++tot] = x%10, x /= 10;for (int i = 1; i < tot; i++) {for (int d = 1; d < 10; d++) cnt[d] += mi;for (int d = 0; d < 10; d++) cnt[d] += mi*9/10*(i-1); mi *= 10;}mi = 1;for (int i = 1; i <= tot; i++) {cnt[a[i]] += last; int begin = (i == tot);for (int d = begin; d < a[i]; d++) cnt[d] += mi;if (a[i]) for (int d = 0; d < 10; d++) cnt[d] += mi*(a[i]-begin)/10*(i-1);last += mi*a[i], mi *= 10;}
}
void work() {read(x), read(y);cal(x); for (int i = 0; i < 10; i++) cnt[i] = -cnt[i];cal(y+1); for (int i = 0; i < 9; i++) write(cnt[i]), putchar(' '); writeln(cnt[9]);
}
int main() {work(); return 0;
}

转载于:https://www.cnblogs.com/NaVi-Awson/p/8483411.html

http://www.jmfq.cn/news/5149531.html

相关文章:

  • wordpress smtp设置163/百度搜索引擎优化的养成良好心态
  • 技术先进的网站建设公司/教程推广优化网站排名
  • 美橙互联网站建设进不去/吉林seo排名公司
  • 郑州专业建站报价/百度推广账户搭建
  • 汉阳网页设计/seo内链优化
  • 敦煌网站外引流怎么做/微博推广方式有哪些
  • 网站建设定制开发价格/守游网络推广平台
  • 网站建设工资 优帮云/代写文章平台
  • 网站怎么做会让神马搜索到/足球比赛直播
  • 企业做网站的步骤与做网站注意事项/全网推广
  • 一个网站的后台/拉新平台
  • 网站制作三站/青岛网站开发公司
  • 长沙做网站湖南微联讯点不错/2023年3月份疫情严重
  • 柳州市城乡建设委员会网站/重庆百度seo代理
  • 安徽网站建设费用/徐州seo排名公司
  • 公司网站建设及维护管理总结/网络营销软文范例300
  • 外贸网站建设需要注意什么/云南网站seo服务
  • 北京知名seo公司精准互联/seo做什么网站赚钱
  • 机箱做的网站主机怎么查看ftp/班级优化大师电脑版
  • 织梦 xml网站地图/搜狗收录提交入口
  • wap网站方案/西安seo经理
  • 滨江做网站/淘宝关键词优化
  • 赤峰市建设网站/seow是什么意思
  • wordpress 插件 表/吉林seo基础知识
  • 丝绸之路网站建设策划书/网站制作需要多少钱
  • 淘宝客高佣金网站建设/中国万网域名注册官网
  • 湖北网站建设价格/营销推广计划书
  • wordpress 搞笑网站/seo页面内容优化
  • wordpress 滑块如何使用/seo网站推广方案
  • 番禺 大石网站建设/短视频代运营方案策划书