题目:数码
来源:美团2017年CodeM大赛-资格赛

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format:%lld

题目描述

给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x
的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~9每个数码出现的次数。

输入描述:

一行,两个整数 l 和 r (1 ≤ l ≤ r ≤ 109)。

输出描述:

输出9行。

第 i 行,输出数码 i 出现的次数。

示例1
输入

1 4

输出

4
2
1
1
0
0
0
0
0

题解:
先介绍一个函数:
solve(a,b)就是从1~a中数码b的倍数出现的次数
solve(a,b)=a/b
那么求[l,r]的话,就用solve(r,b)-solve(l-1,b),大致可以理解成前缀和那种
num就是0~9,计算每个num对应的区间
最高位是1的话:1,10 ~ 19,100 ~ 199, 1000 ~ 1999…
最高位是2的话:2,20 ~ 29,200 ~ 299, 2000 ~ 2999…

因为我们只记录约数的最高位,像1999,约数就是1和1999,我们只记录最高位,那么就是有两个1
那么我们枚举以num开头的数,计算它的倍数在[l,r]中出现的次数。
按照几位数和最高位是几进行枚举,有多少这样的数直接统计就ok
solve(r,num)-solve(l-1,num)
枚举num的值
让最高位等于x时num枚举相对应的区间(从x*10y-1~(x+1)*10y-1-1)y=1.2.3…
有部分数会被算重复,因为有完全平方数存在,
再运用整除分块技巧,让复杂度降到O(根号n)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll minn(ll a,ll b)
{if(a>=b){  return b;}else {//  cout<<a;return a;}
}
ll solve(ll a, ll b) {ll res = 0;ll beg;ll end;for (ll i = 1; i <= a / b; i *= 10) {beg = b * i;//区间开头end = minn(a, beg + i - 1);//区间结尾int k;for (int j = beg; j <= end; j = k + 1) {k = min(a / (a / j), end);//cout<<a/(a/i)<<" "<<end<<endl;res += (k - j + 1) * (a / j);}}return res;
}
ll l,r;
int main(){cin>>l>>r;for(ll i=1;i<=9;i++){cout<<solve(r,i)-solve(l-1,i)<<endl;}return 0;
}

【每日一题】4月6日数码相关推荐

  1. 第五人格七月三日服务器维护要多久,第五人格微信每日一题7月3日答案是什么_今天有四个人来访过_玩游戏网...

    <第五人格>2021独特时装体验卡礼包 第五人格2021独特时装体验卡礼包怎么获得?礼包中有独特时装体验卡.角色体验卡等奖励,小编这里就分享一下第五人格2021独特时装体验卡礼包领取地址, ...

  2. PMP模拟试题每日5题(5月5日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.你的敏捷团队与一个开发商 ...

  3. PMP模拟试题每日5题(5月7日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.产品开发团队采用敏捷开发 ...

  4. PMP模拟试题每日5题(4月28日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目需要委托第三方研发一 ...

  5. PMP模拟试题每日5题(4月22日)

    ​​​​摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目技术团队强烈 ...

  6. PMP模拟试题每日5题(5月6日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.沟通对项目成功非常关键. ...

  7. 【备战秋招】每日一题:4月23日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

    为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-农村大亨 在线评测链接:P1247 题目内容 塔子哥是一个喜欢种田类的游戏的人,他觉得这样的游戏可以让他体验到农民的乐趣,同时 ...

  8. 牛客网 每日一题 7月23日题目精讲—wpy的请求

    来源:牛客网: 文章目录 wpy的请求 题解: 代码: wpy的请求 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge ...

  9. AcWing2022寒假每日一题(1 月 2 日 ~ 1 月 15 日)

    目录 1/2 AcWing 2058. 笨拙的手指 1/3 (前缀和)AcWing 2041. 干草堆 1/4 (dfs暴力枚举)AcWing 2060. 奶牛选美 1/5 (bfs)AcWing 2 ...

  10. AcWing2022寒假每日一题(1 月 2 日 ~ 1 月 6 日)

    目录 1/2 AcWing 2058. 笨拙的手指 1/3 AcWing 2041. 干草堆 1/4 AcWing 2060. 奶牛选美 1/5 AcWing 2019. 拖拉机 1/6 AcWing ...

最新文章

  1. DataBinder
  2. OSI模型和TCP/IP模型
  3. Py之curses:curses库的简介、使用、安装方法详细攻略
  4. 为什么说美团终将放弃打车?
  5. WPF 4 单词拼写检查(SpellCheck)
  6. java下标运算符_《Java从小白到大牛精简版》之第6章 运算符(下)
  7. 使用第三方Markdown编辑器编辑为知笔记
  8. js验证固定电话、手机号码(代码大全)
  9. 【计算机网络笔记】物理层:概念传输媒体传输方式
  10. NanobeamM5无线网桥配置
  11. 二阶低通有源滤波器设计与仿真测试
  12. Pro Tools 贴士- 使用Snapper快速试听和导入音频素材
  13. python转cython_10分钟带你入门Cython
  14. 最优秀好用的免费文件压缩/解压缩工具软件 (可替代WinRAR与7-Zip)——Bandizip
  15. 91.【SpringBoot-03】
  16. 成长,进一寸有一寸的欢喜
  17. linux 升级root,linux系统内核升级实例
  18. 浏览器无法访问部分网站
  19. 根据分割符分割字符串成数组
  20. 《降伏其心》节选:从辟谷揭开修行的真相

热门文章

  1. 不懂这25个名词,好意思说你懂大数据?
  2. 计算机科学中的虚拟化包括哪些,计算机虚拟化包括哪几个方面(计算机虚拟技术在计算机教学中的应用探究)...
  3. PHP 接收 UDP包_php只能做网站?基于swoole+websocket开发双向通信应用
  4. python每天定时9点执行_python 定时器每天就执行一次的实现代码
  5. android 更改edittext内容,Android如何实时更改edittext的内容
  6. java获取整点与凌晨的时间戳
  7. linux中人脸识别不了,虹软人脸识别在 linux中so文件加载不到的问题
  8. java多线程 sycophantic_Java多线程volatile和synchronized总结
  9. postgresql 动态添加过滤条件_通过窗口函数进行过滤导致Postgresql
  10. linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]