UVA11038
题目大意:见刘汝佳《算法竞赛入门经典——训练指南》P173
解题思路:
求出 0 到 m-1 这些数字中 0 出现的次数(此处要特判 m = 0 的情况),再求出 0 到 n 这些数字中 0 出现的次数,后者减去前者即是答案。
求 0 到某一个数字这些数字中 0 出现的次数:
从第二高位枚举每一位上 0 出现的次数:1、这一位上的数字是 0,我们以 10030 的百位为例,这一位上的 0 出现的次数为:(10 - 1)*100 + 30 + 1;2、这一位上的数字不是0,我们以 10330 的百位为例,这一位上的 0 出现的次数为:10*100。别忘记考虑 0 哦,所以得出的答案再加上 1 才是正解。
AC代码:
#include <iostream>
#include <cstdio> using namespace std;
typedef long long ll; int main(){
ll m,n;
while(scanf("%lld%lld",&m,&n)==&&m>=&&n>=){
m--;
ll ans1=;
if(m>=){
ll t1=;
while(m/t1>=)
t1*=;
while(t1){ //判断条件
if(m/t1%!=)
ans1+=m/(t1*)*t1;
else
ans1+=((m/(t1*)-)*t1+m%t1+);
t1/=;
}
ans1++;
}
else
ans1=; ll ans2=, t2=;
while(n/t2>=)
t2*=;
while(t2){
if(n/t2%!=)
ans2+=n/(t2*)*t2;
else
ans2+=((n/(t2*)-)*t2+n%t2+);
t2/=;
}
ans2++;
printf("%lld\n",ans2-ans1);
}
return ;
}
UVA11038的更多相关文章
- UVA 1103 How Many O's?
题目链接:UVA-11038 题意为给定n和m,求n和m之间(包含)的所有数包含的0的个数. 思路是,用cal(x)表示小于等于x的数包含的0的个数.则答案为cal(n)-cal(m-1). 再把求c ...
- UVa 11038 有多少个0
https://vjudge.net/problem/UVA-11038 题意: 输入两个非负整数m和n,求将m~n的所有整数写出来,一共要写多少个数字0? 思路: 举个例子来说: 12345 从右到 ...
随机推荐
- java在指定区间内生成随机数
Random对象生成随机数 首先需要导入包含Random的包 import java.util.Random; nextInt(int)方法将生成0~参数之间的随机整数但不包括参数. 例如生成0~99 ...
- k8s namespace限制调研
1.创建namespace gpu 2.增加限制 [root@tensorflow1 gpu-namespace]# cat compute-resources.yaml apiVersion: v1 ...
- MyBaties一级缓存
2019独角兽企业重金招聘Python工程师标准>>> 一.一级缓存简介 在系统代码的运行中,我们可能会在一个数据库会话中,执行多次查询条件完全相同的Sql,鉴于日常应用的大部分场景 ...
- Android Room SQLite持久层框架
原文链接 前言 Android中提供了SQLite数据库进行数据的持久化 ,并提供了对应API访问数据库,而Room框架提供了SQLite数据访问抽象层,为高效的数据库访问层带来便捷 APP可以缓存用 ...
- tomcat 在linux下启动时找不到JDK
方案一. 修改bashrc (转载: https://www.cnblogs.com/hongzg1982/articles/2101792.html) $ vim ~/.bashrc #加入JA ...
- 最小点覆盖(König定理)
König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数.如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有 ...
- D. Mysterious Present DAG dp
https://codeforces.com/problemset/problem/4/D 这个题目比较简单,就是一个DAG模型,这个可以看看紫书学习一下, 我这次是用dp来写的,用记忆化搜索也许更好 ...
- Python3 迭代器与生成器 - 学习笔记
可迭代对象(Iterable) 迭代器(Iterator) 定义 迭代器和可迭代对象的区别 创建一个迭代器 创建一个迭代器类 使用内置iter()函数 StopIteration异常 生成器(gene ...
- 自动化运维工具Ansible之Roles测验详解
Ansible Roles 详解与实战案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...
- java读源码 之 queue源码分析(PriorityQueue,附图)
今天要介绍的是基础容器类(为了与并发容器类区分开来而命名的名字)中的另一个成员--PriorityQueue,它的大名叫做优先级队列,想必即使没有用过也该有所耳闻吧,什么?没..没听过?emmm... ...