LightOJ - 1140 How Many Zeroes?

Description

Jimmy writes down the decimal representations of all natural numbers between and including m and n, (m ≤ n). How many zeroes will he write down?

 

Input

Input starts with an integer T (≤ 11000), denoting the number of test cases.Each case contains two unsigned 32-bit integers m and n, (m ≤ n).

 

Output

For each case, print the case number and the number of zeroes written down by Jimmy.

 

 

Sample Input

510 11100 2000 5001234567890 23456789010 4294967295

 

Sample Output

Case 1: 1Case 2: 22Case 3: 92Case 4: 987654304Case 5: 3825876150

 

给出区间[m,n],求区间内的所有数共有多少个0。

 

设dp[i][j]表示处理到第i位时,它前面共有j个0(除了前导零)。

 1 // 110,101,100,011,010,001,000
 2 #pragma comment(linker, "/STACK:1024000000,1024000000")
 3 #include<iostream>
 4 #include<cstdio>
 5 #include<cstring>
 6 #include<cmath>
 7 #include<math.h>
 8 #include<algorithm>
 9 #include<queue>
10 #include<set>
11 #include<bitset>
12 #include<map>
13 #include<vector>
14 #include<stdlib.h>
15 using namespace std;
16 #define ll long long
17 #define eps 1e-10
18 #define MOD 1000000007
19 #define N 1000000
20 #define inf 1e12
21 ll a,b;
22 ll dp[26][26];
23 int dig[26];
24 ll dfs(int len,/*转化为二进制数的位数*/ int first,/*1表示目前前导都为0*/ int sta,/*sta表示前面有几个0*/ int up/*up来判断每一位的取值,1的时候只能取原定值,0的时候取0~9的任意值*/){
25     if(len==0){//当算到最后一位的时候 
26         if(first){
27             return (ll)1;
28         }else{
29             return (ll)sta;
30         }
31     } 
32     if(!up && dp[len][sta]!=-1 && !first){//记忆化,之前算过的直接返回值,不再继续算
33        return dp[len][sta]; 
34     }
35     
36     int n=up?dig[len]:9;//如果up的值为1,只能取dig[len],比如值为123,up值为1即第一位为1了,那么n的值最大为2,而不能为9
37     ll res=0;
38     for(int i=0;i<=n;i++){
39         if(first){//如果前导都为0时,sta=0,up值的确定取决于是否是n 
40             res+=dfs(len-1,first&&i==0,0,up&&i==n);
41         }else{
42             if(i==0){// 这里判断的是如果i=0,前面的0的个数+1 
43                 res+=dfs(len-1,0,sta+1,up&&i==n); 
44             }else{
45                 res+=dfs(len-1,0,sta,up&&i==n); 
46             }
47               
48         }
49     } 
50     if(!up && !first){
51         dp[len][sta]=res;
52     }
53     return res;
54 } 
55 ll cal(ll num){
56     int len=0;
57     if(num == 0){//如果值为0,则只有一位数0 
58         dig[++len] = 0;
59     }
60     while(num){
61         dig[++len] = num % 10;
62         num/=10;
63     }
64     return dfs(len,1,0,1);
65 }
66 int main()
67 {
68     int t;
69     int ac=0;
70     scanf("%d",&t);
71     while(t--){
72         scanf("%lld%lld",&a,&b);
73         memset(dp,-1,sizeof(dp));
74         printf("Case %d: ",++ac);
75         printf("%lld\n",cal(b)-cal(a-1));
76         
77     }
78     return 0;
79 } 
View Code

 

 

转载于:https://www.cnblogs.com/UniqueColor/p/5156444.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​机器学习算法优缺点对比及选择(汇总篇)

转自&#xff1a;机器学习与统计学本文的目的&#xff0c;是务实、简洁地盘点一番当前机器学习算法。文中内容结合了个人在查阅资料过程中收集到的前人总结&#xff0c;同时添加了部分自身总结&#xff0c;在这里&#xff0c;依据实际使用中的经验&#xff0c;将对此模型优缺点…

QT学习笔记(八):顺序容器和关联容器

QT学习笔记&#xff08;八&#xff09;&#xff1a;顺序容器和关联容器一、前言二、容器介绍2.1 顺序容器2.2 关联容器二、顺序容器示例三、关联容器一、前言 在Qt库中为我们提供了一系列的基于模板的容器类(container classes)。这些类可以被用来存储特定类型的项(items)。例…

页面的缓存与不缓存设置

HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息&#xff0c;包括浏览器 端&#xff0c;中间缓存服务器端(如&#xff1a;squid等)&#xff0c;Web服务器端。本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情…

QT学习笔记(九):遍历容器-迭代器(iterators)

QT学习笔记&#xff08;九&#xff09;&#xff1a;遍历容器-迭代器&#xff08;iterators&#xff09;遍历容器 &#xff1a;1、Jave风格:2、STL风格:3、foreach 关键字:遍历容器 &#xff1a; 遍历一个容器可以使用迭代器&#xff08;iterators&#xff09;完成&#xff0c;…

QT学习笔记(十):通用算法示例

QT学习笔记&#xff08;十&#xff09;&#xff1a;通用算法示例 std是C标准库统一使用的命名空间(namespace)的名称&#xff0c;C标准库中的名字全部都在std这个命名空间中,std也就是英文"standard"&#xff08;标准&#xff09;的缩写。 #include <QCoreAppl…

了解因果论:从珀尔的《为什么》开始

图I&#xff1a;AI从达特茅斯会议&#xff08;1956年&#xff09;得名至今已有六十年&#xff0c;期间几起几落&#xff0c;群星璀璨&#xff0c;像一个大舞台&#xff0c;你方唱罢我登场&#xff0c;留下了一些永载史册的理论和成就&#xff0c;但涉及因果的甚少作者&#xff…

外观模式(三层解耦)

说到外观模式&#xff0c;很容易想到的是设计一件漂亮的衣服然后穿上自己的身上&#xff0c;让自己看起来更加的漂亮&#xff0c;但是这个可能并不是这样子的&#xff0c;从更深层次的来说&#xff0c;外观更应该是所见即所得的&#xff0c;对于观众来说&#xff0c;看起来可能…

QT学习笔记(十一):QString类

QT学习笔记&#xff08;十一&#xff09;&#xff1a;QString类1、概述2、编辑操作3、查询操作3、转换操作1、概述 1.1 QString 类是 Qt 中用于表示字符串的类&#xff0c;实现在 QtCore 共享库中。QString 类在实现上有以下特征: 1&#xff09;字符串采用 Unicode 内部编码&…

人工智能六十年技术简史

作者 | 李理出品 | AI科技大本营&#xff08;rgznai100&#xff09;人类的进化发展史就是一部人类制造和使用工具的历史&#xff0c;不同的工具代表了人类的进化水平。从石器时代、铁器时代、蒸汽时代、电气时代再到现在的信息时代&#xff0c;我们使用更加先进便捷的工具来改变…

QT学习笔记(十二):透明窗体设置

QT学习笔记&#xff08;十二&#xff09;&#xff1a;透明窗体设置 创建 My_Widget 类 基类为QWidget &#xff0c; My_Widget.cpp 源文件中添加代码 #include "widget.h" #include "ui_widget.h"#include <QGraphicsDropShadowEffect>// 构造函数…

【新书】崛起的超级智能:互联网大脑如何影响科技未来

来源&#xff1a;刘锋的未来课堂2019年7月&#xff0c;《崛起的超级智能&#xff1a;互联网大脑如何影响科技未来》由中信出版社正式出版。作者刘锋。吕乃基、石勇、吕本富做序。张亚勤、刘慈欣、周鸿祎、王飞跃、约翰.翰兹等专家为这本书撰写了推荐语。《崛起的超级智能》主要…

OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程

OpenCV学习笔记&#xff08;一&#xff09;&#xff1a;Win10(x64)Qt5.8(MSVC2013)OpenCV3.1.0配置过程 Win10(x64)Qt5.8(MSVC2013)OpenCV3.1.0配置过程 配置需求 原版 Win10(x64) Qt5.8(MSVC2013) OpenCV3.1.0 第一步&#xff1a;安装QT 5.8 和OpenCV3.1.0 并配置环境变量…

Windows10安装TeXlive和TeXstudio

参考https://blog.csdn.net/aiwei169/article/details/81431363 进入官网http://tug.org/texlive/ 第一步 第二步 第三步 第四步 等待 安装包下载 解压下载的文件&#xff0c;将解压后的安装包放在英文路径下&#xff08;即不要包含中文的路径&#xff09; 修改安装路径&am…

QT环境配置:QT5.8.0与VS2013环境配置

QT环境配置&#xff1a;QT5.8.0与VS2013环境配置 1、下载VS2013&#xff0c;QT5.8.0&#xff0c;qt-vs-tools-msvc2013-2.1.1。 1&#xff09;VS2013版本为&#xff1a;Visual Studio Ultimate 2013 2&#xff09;QT5.8.0版本为&#xff1a;qt-opensource-windows-x86-msvc20…

云计算与边缘计算协同的九大应用场景剖析

来源 | 中国信息通信院CAICT未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&…

QT学习笔记(十三):绘制图像

QT学习笔记&#xff08;十三&#xff09;&#xff1a;绘制图像 paintEvent() 事件源码添加&#xff1a; #include <QPainter> #include <QImage> #include <QPixmap> #include <QBitmap> #include <QPicture>void Widget::paintEvent(QPaintEve…

【Robot学院】一文读懂世界智能制造大趋势!

本文来源&#xff1a;智造智库工业4.0在德国被认为是第四次工业革命&#xff0c;主要是指&#xff0c;在“智能工厂”利用“智能设备”将“智能物料”生产成为“智能产品”&#xff0c;整个过程贯穿以“网络协同”&#xff0c;从而提升生产效率&#xff0c;缩短生产周期&#x…

QT学习笔记(十四):QLayout的属性介绍

QT学习笔记&#xff08;十四&#xff09;&#xff1a;QLayout的属性介绍 主要包括QBoxLayout、和QGridLayout以及QFormLayout等的参数类似。 我主要说明一下QGridLayout在QtDesigner中它的属性的意义&#xff0c;以及QFormLayout的部分属性 一、QGridLayout属性介绍 1、QGri…

查找所引用的文献在某种期刊下的引用格式(引用风格)

当我们要引用一篇文献时&#xff0c;常常需要知道这篇文献在某种期刊下的引用格式是怎样的。举个例子&#xff0c;我需要查找“Gradient-based learning applied to document recognition”这篇文献在Neuroimage期刊下的引用格式怎么写。 首先在谷歌学术上搜索“Gradient-base…