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

题目链接

约翰的奶牛正在公路上旅行。
他们汽车上的里程表显示的是整数里程值。
旅途开始时里程表显示的里程值为 X,旅途结束时里程表显示的里程值为 Y。
每当里程表显示“有趣的”数字(包括开始和结束时显示的数字)时,奶牛们就会发出愉快的叫声。
如果一个数除去前导零以外的所有数字中,除了一个数字不同以外,其他所有数字都是相同的,那么这个数就是“有趣的”。
例如,33323 和 110 是有趣的,而 9779 和 55555 不是有趣的。
请帮助约翰计算奶牛们在旅途中发出叫声的次数。
输入格式
共一行,包含两个整数 X 和 Y。
输出格式
输出奶牛们在旅途中发出叫声的次数。
数据范围
100≤X≤Y≤1016

题目分析

“有趣的数”:除了一个数字不同以外,其他所有数字都是相同的,可以分析出有趣的数中一共只有两个不同的数

观察本题的数据范围为1016显然不能通过遍历来实现
我们可以计算一下在1016以内的有趣的数的个数约为:17(数字位数,1016共有17位)*10(第一个数一共有0~9十种取值)*9(第二个数与第一个数不能相同故有9种取值)*17(第二个数的出现位置)=26010
经过上述计算得出1016以内有趣的数共有26010个于是我们可以通过逆向思维枚举这26010个数然后从中找出在X和Y之间的数即可

代码

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef long long LL;int main()
{LL x,y;cin >> x >> y;int cnt=0;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 t = 0; t < i; t ++ ){string s(i,'0'+j);s[t]='0'+k;if(s[0]=='0')continue;LL ans=stoll(s);if(ans>=x&&ans<=y)cnt++;}cout << cnt;return 0;
}

AcWing 1912. 里程表(逆向思维)相关推荐

  1. AcWing 1912. 里程表(枚举)

    [题目描述] 约翰的奶牛正在公路上旅行. 他们汽车上的里程表显示的是整数里程值. 旅途开始时里程表显示的里程值为 X X X,旅途结束时里程表显示的里程值为 Y Y Y. 每当里程表显示"有 ...

  2. AcWing 734. 能量石 (01背包)+(贪心 - 领项交换)

    AcWing 734. 能量石 #include<cstdio> #include<algorithm> #include<cstring> #include< ...

  3. 解题报告:AcWing 352. 闇の連鎖(树上差分、方案统计)

    https://www.acwing.com/problem/content/354/ 在没有附加边的情况下,我们发现这是一颗树,那么再添加条附加边(x,y)后,会造成(x,y)之间产生一个环 如果我 ...

  4. 【错误里程表】8进制转10进制

    题目 某辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数.然而这个里程表有个毛病:它总是从2变到4,而跳过数字3:从7变到9,而跳过数字8,里程表所有位(个位. 十位.百位等)上的数字 ...

  5. 【算法学习笔记】43.动态规划 逆向思维 SJTU OJ 1012 增长率问题

    1012. 增长率问题 Description 有一个数列,它是由自然数组成的,并且严格单调上升.最小的数不小于S,最大的不超过T.现在知道这个数列有一个性质:后一个数相对于前一个数的增长率总是百分比 ...

  6. 测试适合眉形的软件_软件测试的自我修养:正向思维与逆向思维

    提起正向思维与逆向思维大家一定都不陌生,因为这是一个老生常谈的问题了.这样的思维方式一直贯穿着软件测试案例设计和执行的始末,现有的软件测试科学理论体系依赖测试的预想结果和实际结果来决定软件的正确性.下 ...

  7. acwing算法题--铁路与公路

    原题链接:https://www.acwing.com/problem/content/description/4077/ #include <iostream> #include < ...

  8. acwing算法题--看图做题

    原题链接:https://www.acwing.com/problem/content/3992/ 找规律题 #include<iostream>using namespace std;i ...

  9. acwing算法题--不同的数

    原题链接:https://www.acwing.com/problem/content/3991/ #include <iostream> #include <unordered_m ...

最新文章

  1. Google全球员工围攻Google!
  2. 清华浙大年度学生最高奖,都颁向量子物理
  3. JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...
  4. 数据可视化(一)-Matplotlib简易入门
  5. 青龙羊毛——去闲转(教程)
  6. Windows编程一日一练(1)
  7. 领扣-26/27/80/283 数组专题 做好初始定义 双指针 MD
  8. 如何开启并配置CITRIX Xenserver的SNMP服务
  9. 摘花生(信息学奥赛一本通-T1284)
  10. 【linux】安装centOS过程中遇到的困难
  11. C# 线程手册 第四章 线程设计原则 对等线程模型
  12. vivox6android版本5.1,vivo X6 Plus的手机系统是什么?能升级安卓5.0吗?
  13. JAVA魔法堂:折腾Mybatis操作SQLite的SQLException:NYI异常
  14. 数据库事务的一致性和原子性浅析
  15. Android支付接入(四):联通VAC计费
  16. 小学奥林匹克计算机怎么学,小学奥林匹克数学教程1--6年级全套
  17. linux51单片机烧录程序,单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境...
  18. VisualStudio Qt开发环境搭建以及Qt moc的讲解
  19. 【风马一族_win10设置热点】win10无法开启热点怎么办
  20. java解析与生成json数据的四种方式,比如将json字符串转为json对象或json对象转为json字符串

热门文章

  1. 2018年Android面经-BAT、头条、网易、爱奇艺、华为等等(中)
  2. 编程之旅-Day20
  3. vue项目配置rem移动端适配
  4. FP32、FP16和INT8
  5. 软件公司发展的五种模式[原创]
  6. 专业CRM系统,提高销售的客户成交率
  7. 好久没有好好学习天天向上了,慢慢开始重拾学习的心情了
  8. 计算机视觉中Canny算子详解
  9. CSS3 小球抛物线动画
  10. PHP基金会 - PHP Foundation