题目链接:UVA-11038

题意为给定n和m,求n和m之间(包含)的所有数包含的0的个数。

思路是,用cal(x)表示小于等于x的数包含的0的个数。则答案为cal(n)-cal(m-1)。

再把求cal(x)转化为求\(\sum_i 在第i位为0的小于x的数的个数 \)。

要求在第i位为0的数的个数,我们只需要,把x的第i位设为0,然后分别i位左右两侧统计个数即可。

代码如下:

 #include"cstdio"
#include"iostream"
#include"cstring"
#include"algorithm"
#include"cstdlib"
#include"vector"
#include"set"
#include"map"
#include"cmath"
using namespace std;
typedef long long LL;
const LL MAXN=; LL cal(LL x)
{
LL ans=;
LL rgt=;
LL ten=;
while(x>=)
{
LL p=x%;
x/=;
if(p!=)
ans+=x*ten;
else
ans+=(x-)*ten + (rgt+);
rgt=rgt+ten*p;
ten*=;
}
return ans;
}
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
#endif
LL n,m;
while(scanf("%lld%lld",&m,&n)== && (n!=- || m!=-))
{
if(m==) printf("%lld\n",cal(n));
else printf("%lld\n",cal(n)-cal(m-));
}
return ;
}

最新文章

  1. JS 生成GUID 方法
  2. Python 学习笔记四
  3. 设计模式学习之外观模式(Facade,结构型模式)(8)
  4. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念
  5. 【News】SpagoBI中国官方微信对外发布
  6. Android实现地图服务
  7. Eclipse配置CAS client
  8. jcarousellite 实现图片列表滚动
  9. tcpdump 命令行抓包工具
  10. Kill Processes in Linux
  11. 【转】android开发 dts、各种接口porting----不错
  12. 【Centos7】卸载OpenJDK
  13. python3 参数*args 、 **args 在函数定义和调用中的应用
  14. 更改系统盘符后DFS无法复制故障处理
  15. 潭州课堂25班:Ph201805201 django 项目 第二十课 数据库分析设计图 (课堂笔记)
  16. Nginx 安装配置教程
  17. fmt标签如何计算两个日期之间相隔的天数
  18. IdentityServer4结合AspNetCore.Identity实现登录认证踩坑填坑记录
  19. 使用dshow捕获摄像头图像
  20. Network Simulator for P4(NSP4) src内容介绍

热门文章

  1. Redis windows环境安装 以及 redis整合spring
  2. 洛谷 P1495 曹冲养猪
  3. 802.1p 优先级与内部优先级的映射关系
  4. QoS专题-第4期-QoS实现之限速
  5. JDBC连接SQL Server
  6. [CodeVs1515]跳(lucas定理+费马小定理)
  7. [CodeVs1050]棋盘染色2(状态压缩DP)
  8. 解题:CTSC 2017 吉夫特
  9. 流媒体协议之JRTPLIB的使用20170919
  10. 弄清楚CSS的匹配原理让你写出高效的CSS