【每日一题】4月6日数码
题目:数码
来源:美团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日数码相关推荐
- 第五人格七月三日服务器维护要多久,第五人格微信每日一题7月3日答案是什么_今天有四个人来访过_玩游戏网...
<第五人格>2021独特时装体验卡礼包 第五人格2021独特时装体验卡礼包怎么获得?礼包中有独特时装体验卡.角色体验卡等奖励,小编这里就分享一下第五人格2021独特时装体验卡礼包领取地址, ...
- PMP模拟试题每日5题(5月5日)
摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.你的敏捷团队与一个开发商 ...
- PMP模拟试题每日5题(5月7日)
摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.产品开发团队采用敏捷开发 ...
- PMP模拟试题每日5题(4月28日)
摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目需要委托第三方研发一 ...
- PMP模拟试题每日5题(4月22日)
摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目技术团队强烈 ...
- PMP模拟试题每日5题(5月6日)
摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.沟通对项目成功非常关键. ...
- 【备战秋招】每日一题:4月23日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释
为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-农村大亨 在线评测链接:P1247 题目内容 塔子哥是一个喜欢种田类的游戏的人,他觉得这样的游戏可以让他体验到农民的乐趣,同时 ...
- 牛客网 每日一题 7月23日题目精讲—wpy的请求
来源:牛客网: 文章目录 wpy的请求 题解: 代码: wpy的请求 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge ...
- AcWing2022寒假每日一题(1 月 2 日 ~ 1 月 15 日)
目录 1/2 AcWing 2058. 笨拙的手指 1/3 (前缀和)AcWing 2041. 干草堆 1/4 (dfs暴力枚举)AcWing 2060. 奶牛选美 1/5 (bfs)AcWing 2 ...
- AcWing2022寒假每日一题(1 月 2 日 ~ 1 月 6 日)
目录 1/2 AcWing 2058. 笨拙的手指 1/3 AcWing 2041. 干草堆 1/4 AcWing 2060. 奶牛选美 1/5 AcWing 2019. 拖拉机 1/6 AcWing ...
最新文章
- DataBinder
- OSI模型和TCP/IP模型
- Py之curses:curses库的简介、使用、安装方法详细攻略
- 为什么说美团终将放弃打车?
- WPF 4 单词拼写检查(SpellCheck)
- java下标运算符_《Java从小白到大牛精简版》之第6章 运算符(下)
- 使用第三方Markdown编辑器编辑为知笔记
- js验证固定电话、手机号码(代码大全)
- 【计算机网络笔记】物理层:概念传输媒体传输方式
- NanobeamM5无线网桥配置
- 二阶低通有源滤波器设计与仿真测试
- Pro Tools 贴士- 使用Snapper快速试听和导入音频素材
- python转cython_10分钟带你入门Cython
- 最优秀好用的免费文件压缩/解压缩工具软件 (可替代WinRAR与7-Zip)——Bandizip
- 91.【SpringBoot-03】
- 成长,进一寸有一寸的欢喜
- linux 升级root,linux系统内核升级实例
- 浏览器无法访问部分网站
- 根据分割符分割字符串成数组
- 《降伏其心》节选:从辟谷揭开修行的真相
热门文章
- 不懂这25个名词,好意思说你懂大数据?
- 计算机科学中的虚拟化包括哪些,计算机虚拟化包括哪几个方面(计算机虚拟技术在计算机教学中的应用探究)...
- PHP 接收 UDP包_php只能做网站?基于swoole+websocket开发双向通信应用
- python每天定时9点执行_python 定时器每天就执行一次的实现代码
- android 更改edittext内容,Android如何实时更改edittext的内容
- java获取整点与凌晨的时间戳
- linux中人脸识别不了,虹软人脸识别在 linux中so文件加载不到的问题
- java多线程 sycophantic_Java多线程volatile和synchronized总结
- postgresql 动态添加过滤条件_通过窗口函数进行过滤导致Postgresql
- linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]