给出一段区间a-b,统计这个区间内0-9出现的次数。
比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次。
输入
两个数a,b(1 <= a <= b <= 10^18)
输出
输出共10行,分别是0-9出现的次数
输入样例

10 19
输出样例
1
11
1
1
1
1
1
1
1
1
满足区间减法,于是我们只需要分别计算 [0,a−1]以及 [0,b]的结果,相减既是答案。我们考虑从一个数 x的低位往高位开始枚举,对于第 k位我们分情况进行讨论。
假设 x=12345,k指向数字 3的位置,则此时pre=12,after=45,tmp=100
我们枚举 i从 0−9:
当前数字小于 i,即 i∈[4,9],此时高位的变化范围可以是 [0,11],共 pre×tmp种方案
当前数字大于 i,即 i∈[0,2],此时高位的变化范围可以是 [0,12],共 (pre+1)×tmp种方案
当前数字等于 i,即 i=3,此时高位的变化范围可以是 [0,12],当且仅当高位等于 12时低位最多取到45,因此共有 pre×tmp+after+1种方案
特殊的当 i=0时且高位为 0时,显然这种情况是不允许的,因此我们需要减去一个 tmp 。
ps:
数位dp的做法

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll ans[10];
void solve(ll n,int sign)
{ll cur,pre,after,tmp=1,tn=n;while(n){cur=n%10;pre=n/10;after=tn-n*tmp;for(int i=0;i<=9;i++){if(cur>i)ans[i]+=(pre+1)*tmp*sign;else if(cur<i)ans[i]+=pre*tmp*sign;elseans[i]+=(pre*tmp+after+1)*sign;    }ans[0]-=tmp*sign;tmp*=10;n/=10;}
}
int main()
{ios::sync_with_stdio(false);ll r,l;cin>>l>>r;solve(l-1,-1);solve(r,1);for(int i=0;i<=9;i++)cout<<ans[i]<<endl;return 0;
}

1042 数字0-9的数量(找规律)相关推荐

  1. 【数理题】3,0,7,19,76 找规律

    找规律:3,0,7,19,76,? 解:前两个数相加 乘以 3 减去 2 (3+0)x3-2 = 7,  (0+7)x3-2 = 19,  (7+19)x3-2 = 76,  (19+76)x3-2 ...

  2. Codeforces 959 E. Mahmoud and Ehab and the xor-MST 思路:找规律题,时间复杂度O(log(n))

    题目: 解题思路 这题就是0,1,2-n-1总共n个数字形成的最小生成树. 我们可以发现,一个数字k与比它小的数字形成的异或值,一定可以取到k与所有正整数形成的异或值的最小值. 要计算n个数字的情况我 ...

  3. hdu1847-Good Luck in CET-4 Everybody! (博弈论 SG函数 找规律)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  4. nowcoder_B_114514_打表找规律

    nowcoder_B_114514_打表找规律 114514 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: ...

  5. 【每日一题Day35】LC878第N个神奇数字 | 二分查找 找规律 + 数学

    第N个神奇数字[LC878] 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 ...

  6. LeetCode-878. 第 N 个神奇数字【数学,二分查找,找规律】

    LeetCode-878. 第 N 个神奇数字[数学,二分查找,找规律] 题目描述: 解题思路一:二分答案+容斥原理.给定一个上下界,然后依次增大下界或者减小上界,直到只剩一个答案.容斥原理是,加上两 ...

  7. 4219: 数字菱形————找规律

    记录一道题,当时脑子抽了,规律愣是没找出来,做了俩个小时,感觉自己菜的不行,之后又做了一遍,也要30到40分钟才能做出来, 感觉自己水平还是有待提高... 这种题目主要就是找到规律,有点类似高中技术的 ...

  8. 第N位数字[学会找规律,发现类似通项公式的捷径]

    发现规律+问题拆分 前言 一.第N位数字 二.发现规律+问题拆分 总结 参考文献 前言 找规律属于看问题的一种,也是算法的一种考察角度.通过第N位数字打开找规律的思路,享受类通项公式的迅速求值.除此之 ...

  9. 423 从英文中重建数字(找规律)

    1. 问题描述: 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 &quo ...

  10. 51nod 1770 数数字 找规律,注意进位,时间复杂度O(n)

    题目: 这题很简单,找规律即可. 考虑两次进位: 1.a*b时的进位. 2.aa*b时加法时进位. 代码: #include <bits\stdc++.h> using namespace ...

最新文章

  1. C# 使用公共字段进行窗体传值实例
  2. HTML 5 meta 标签
  3. Mac端SVN工具CornerStone详解
  4. 汇编语言王爽实验十三
  5. 华为ensp配置AC+AP多个SSID信号
  6. python读书笔记—读写文件
  7. @RunWith(SpringRunner.class)和@RunWith(SpringJUnit4ClassRunner.class)的区别
  8. 【ROM制作工具】华为UPDATE.APP固件一键解包打包教程
  9. JAVAFX如何在文本框内插入图片
  10. 构建根文件系统的/dev目录
  11. SDLC 软件开发生命周期及模型
  12. MFO问题与MFEA算法
  13. android activity_main.xml,Android Studio 打开activity_main.xml不能正常显示
  14. 扫地机器人扫水泥地板有用吗_39元的扫地机器人你见过么,还送块水泥板砖……...
  15. jQuery设置内容以及属性
  16. A股暴跌三日市值蒸发4.2万亿 股民人均浮亏超2万
  17. 基于sqlite3的利用数据库实现简单通讯录
  18. OBS框架流程和源码分析七一视频流捕获机制
  19. 图像超分辨率重建之SRCNN
  20. 写一个自己的谷歌浏览器扩展程序(脚本)

热门文章

  1. Linux系统关闭笔记本触摸板的方法
  2. JAVA面试题详解----不知名面试题(8.26更新)
  3. ADUC834BSZ-ASEMI代理亚德诺ADUC834BSZ原厂芯片
  4. html整数正则,javascript正则怎么判断是否整数?
  5. 外呼系统《智能录音外呼IVR和智能外呼机器人》
  6. 【推荐】javaweb JAVA JSP在线拍卖系统(竞拍系统)jsp网上拍卖系统源码
  7. 如何永久性去除word修订标记及批注帮助
  8. 【福利】将图片转成文字组成的的图片,比如将苍老师图片转成“苍老师”的图片!
  9. 一万小时定律-二进制安全一路杀到黑
  10. css3新增的属性和用法