【题目描述】
约翰的奶牛正在公路上旅行。
他们汽车上的里程表显示的是整数里程值。
旅途开始时里程表显示的里程值为 X X X,旅途结束时里程表显示的里程值为 Y Y Y。
每当里程表显示“有趣的”数字(包括开始和结束时显示的数字)时,奶牛们就会发出愉快的叫声。
如果一个数除去前导零以外的所有数字中,除了一个数字不同以外,其他所有数字都是相同的,那么这个数就是“有趣的”。
例如,33323110是有趣的,而977955555不是有趣的。
请帮助约翰计算奶牛们在旅途中发出叫声的次数。

【输入格式】
共一行,包含两个整数 X X X和 Y Y Y。

【输出格式】
输出奶牛们在旅途中发出叫声的次数。

【数据范围】
100 ≤ X ≤ Y ≤ 1 0 16 100≤X≤Y≤10^{16} 100≤X≤Y≤1016

【输入样例】

110 133

【输出样例】

13

【样例解释】
110 ∼ 133 110\sim 133 110∼133之间的所有数字中,有趣数字为:
110 , 112 , 113 , 114 , 115 , 116 , 117 , 118 , 119 , 121 , 122 , 131 , 133 110,112,113,114,115,116,117,118,119,121,122,131,133 110,112,113,114,115,116,117,118,119,121,122,131,133。

【分析】


观察到这个数据范围我们不能枚举 X ∼ Y X\sim Y X∼Y中的所有数然后分别判断是否为有趣数字,因此需要换一种角度,可以枚举所有的有趣数字,即满足位数为 3 ∼ 17 3\sim 17 3∼17且有且只有一位数字不同,其它数字均相同。对于枚举的每一个有趣数字,如果在 X ∼ Y X\sim Y X∼Y的范围中,则答案加一。


【代码】

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;typedef long long LL;
LL x, y;
int res;int main()
{cin >> x >> y;for (int i = 3; i <= 17; i++)//枚举数的位数for (int j = 0; j < 10; j++)//枚举相同的数字是哪一个for (int k = 0; k < 10; k++)//枚举唯一的那个不同的数if (j != k)//两个数必须不同for (int u = 0; u < i; u++)//枚举不同的数出现在哪个位置{string str(i, '0' + j);str[u] = '0' + k;if (str[0] != '0')//不能有前导零{LL num = stoll(str);if (num >= x && num <= y) res++;}}cout << res << endl;return 0;
}

AcWing 1912. 里程表(枚举)相关推荐

  1. AcWing 1912. 里程表(逆向思维)

    AcWing 1912. 里程表(逆向思维) 题目链接 约翰的奶牛正在公路上旅行. 他们汽车上的里程表显示的是整数里程值. 旅途开始时里程表显示的里程值为 X,旅途结束时里程表显示的里程值为 Y. 每 ...

  2. 《算法竞赛进阶指南》打卡-基本算法-AcWing 95. 费解的开关:位运算、枚举、递推

    文章目录 题目解答 题目来源 题目解答 分析: 枚举第一行,指的是第一行哪些位置要切换状态!!!.第一行总共有5个数,组合数是32,即第一行哪些位置要切换总共有32种情况.这就是我们的枚举空间.比如, ...

  3. 《算法竞赛进阶指南》打卡-基本算法-AcWing 93. 递归实现组合型枚举:递归与递推、dfs、状态压缩

    文章目录 题目解答 题目链接 题目解答 分析: 此题和笔者另一篇博文很像,只不过是限定了个数.<算法竞赛进阶指南>打卡-基本算法-AcWing 92. 递归实现指数型枚举:递推与递归.二进 ...

  4. 《算法竞赛进阶指南》打卡-基本算法-AcWing 92. 递归实现指数型枚举:递推与递归、二进制状态压缩、dfs

    文章目录 题目解答 题目链接 题目解答 分析: 优化:用二进制状态压缩,也就是用二进制上的位来记录数有没有被用过. ac代码 #include<bits/stdc++.h> using n ...

  5. AcWing 1750. 救生员(差分+暴力枚举)

    题目链接 https://www.acwing.com/problem/content/1752/ 思路 因为N的范围很小,我们先将所有的救生衣的时间区间用差分统计,然后枚举一下每一个救生衣可能被开除 ...

  6. AcWing 1776. 牛的基因组学(STL+枚举)

    题目链接 https://www.acwing.com/problem/content/1778/ 思路 我们只需要枚举每一列的基因然后判断一下普通牛的基因里面是否有斑点牛基因即可,如果有的话说明不能 ...

  7. AcWing 869. 试除法求约数(枚举)

    题目连接 https://www.acwing.com/problem/content/871/ 思路 就是我们从1枚举到(n)\sqrt(n)(​n)如果能整除我们就放进map容器中最后遍历容器就好 ...

  8. AcWing 1843. 圆形牛棚(暴力+枚举)

    题目链接 https://www.acwing.com/problem/content/description/1845/ 思路 因为n的范围很小(只有100),我们枚举每个点作为奶牛的进场点即可,然 ...

  9. AcWing 2058. 笨拙的手指(暴力枚举)

    题目链接 https://www.acwing.com/problem/content/2060/ 思路 因为二进制和三进制有一位是错误的,那么我们直接二重循环枚举每一位,看更改后是否满足相等,如果是 ...

最新文章

  1. LeetCode Divide Two Integers(不使用乘、除,求模来计算商)
  2. iOS沙盒路径的查看和使用
  3. 并发编程-concurrent指南-阻塞队列BlockingQueue
  4. java 环境 搭建
  5. 奥比中光深度摄像头_奥比中光:确认iPhone X前置3D深度摄像头采用结构光方案...
  6. Vue路由的页面跳转打开新页面
  7. 流式传输 android,通过RTSP将视频流式传输至Android
  8. winnt/win2003下的分区软件PowerQuest ServerMagic
  9. 用python简单的判断闰年,输出当前月份是多少天
  10. 【7gyy】cdma无线通讯上使用的技术
  11. 2013 CVPR点评
  12. 零基础入门网络安全最直线距离的学习路线
  13. 如何识别图片中的表格数据
  14. javascript中document用法
  15. 【Android 系统】--- 下载 Android源码
  16. ORACLE+SQL性能优化
  17. html代码word,Html To Word(一)(示例代码)
  18. XV6 RISC-V 源码阅读报告之进程模型
  19. 二阶RC锂电池模型simulink模型
  20. 淘宝API 商品详情接口 - 外贸多语翻译商品详情店铺分类开放平台接口

热门文章

  1. “什么编程课?不重要!等以后再学吧!”
  2. 12个优秀的国外Material Design网站案例
  3. 职业高中计算机基础知识点,提高职业高中计算机应用基础教学能力
  4. 微信中打开分享链接提示已停止访问该网页的原因及解决办法
  5. 英语里的“大便、小便与放屁”
  6. 当在Ubuntu系统下使用apt-get命令下载依赖包时,报错“E: 无法定位软件包”
  7. 手机充电电源的电路原理
  8. PCD文件格式详解及在PCL下读取PCD文件
  9. 欢迎使飞飞飞用CSDN-markdown编辑器
  10. 生产力 生产关系 生产工具_我的9个最喜欢的生产力工具