#C++初学记录(算法3)
C - 不要62 **
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。
杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。
不吉利的数字为所有含有4或62的号码。例如:
62315 73418 88914
都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。
你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。
Input**
输入的都是整数对n、m(0<n≤m<1000000),如果遇到都是0的整数对,则输入结束。
Output
对于每个整数对,输出一个不含有不吉利数字的统计个数,该数值占一行位置。
Sample Input
1 100
0 0
Sample Output
80
运行代码
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int dp[10][10];
int a[10];
int f(int m)
{
int x=0, y=0;
while(m)
{
y++;
a[y] = m % 10;
m = m / 10;
}
a[y+1] = 0;
for(int i=y; i>=1; i--)
{
for(int j=0; j<a[i]; j++)
if(a[i+1]!=6 || j!=2)
x = dp[i][j] + x;
if(a[i]==4 || (a[i+1]==6 && a[i]==2)) break;
}
return x;
}
int main()
{
int n, m;
dp[0][0] = 1;
for(int i = 1; i <= 7; ++i)
for(int j = 0; j <= 9; ++j)
for(int k = 0; k <= 9; ++k)
if(!(j==6 && k==2) && j!=4)
dp[i][j] += dp[i-1][k];
while(scanf("%d %d", &n, &m))
{
if(n==0 && m==0) break;
printf("%d\n", f(m+1) - f(n));
}
return 0;
}
代码理解
经过思考这个问题首要想到的是对输入的字符串进行分割然后存入数组,既123456分割成“1”“2”等等,进行储存,最好使用动态数组或空间小的动态数组,避免开的数组太多占用太多内存。存入数据后则进行判断,一次判断两位,若出现4或者62则跳过进行下一次运行,若两位判断不出4或者62则删除一位再次进行两位判断。直到最后所有判断完毕得出判断不含有4或者62的次数。
#C++初学记录(算法3)的更多相关文章
- #C++初学记录(算法4)
A - Serval and Bus It is raining heavily. But this is the first day for Serval, who just became 3 ye ...
- #C++初学记录(贪心算法#结构体#贪心算法)
贪心算法#结构体 Problem Description "今年暑假不AC?" "是的." "那你干什么呢?" "看世界杯呀,笨蛋 ...
- #C++初学记录(算法效率与度量)
时间性能 算法复杂性函数: \[ f(n)=n^2 +1000n+\log_{10}n+1000 \] 当n的数据规模逐渐增大时,f(n)的增长趋势: 当n增大到一定值以后,计算公式中影响最大的就是n ...
- #C++初学记录(贪心算法#二分查找)
D - Aggressive cows 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 < ...
- #C++初学记录(算法考试1)
B - Maximal Continuous Rest Each day in Berland consists of n hours. Polycarp likes time management. ...
- #C++初学记录(算法2)
A - Game 23 Polycarp plays "Game 23". Initially he has a number n and his goal is to trans ...
- #C++初学记录(算法测试2019/5/5)(深度搜索)
深度搜索:Oil Deposits GeoSurvComp地质调查公司负责探测地下石油储藏. GeoSurvComp现在在一块矩形区域探测石油,并把这个大区域分成了很多小块.他们通过专业设备,来分析每 ...
- #C++初学记录(sort函数)
sort函数 前言:当进行贪心算法的学习时,需要用到sort函数,因为初学c++汇编语言,sort的具体用法没有深入学习,所以这里进行sort学习记录并只有基础用法并借用贪心算法题目的代码. 百度百科 ...
- #C++初学记录(动态规划(dynamic programming)例题1 钞票)
浅入动态规划 dynamic programming is a method for solving a complex problem by breaking it down into a coll ...
随机推荐
- PhpDocumentor
phpDocument是一个通用的生成PHP文档的工具,他本身也是用PHP写的,跟JAVADoc有些相似,但他有不同于PHPDoc,他比PHPDOC要快,而且能够解析的PHP范围更广,他本身包含了11 ...
- 2015.7.12js-11(DOM基础)
1.childNodes,获取子节点,本身就是一个数组,可以通过下标childNodes[i]来获取某个子节点. alert(obj.childNodes.length); //高级浏览器会有空白节点 ...
- docker 启动 centos 镜像,容器会自动退出
docker启动centos镜像有两种版本可以解决自动退出的问题: 方式一: docker run -d -it [image-ID] /bin/sh 方式二: 在启动脚本里面增加一个执行进程: 1. ...
- maven用变量的方法统一管理jar包版本
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 在UI自动化测试中使用flaky插件运行失败用例
在UI自动化测试中,有时候经常会提示跑用例失败,在单步或单个用例调试时,用例却成功,这个失败的因素主要有环境.代码或前端定位等原因. 可以看这篇文章<我们是如何让UI测试变得稳定的>中有详 ...
- TFS二次开发08——分支(Branch)和合并(Merge)
一:创建分支 private static void BranchFile(Workspace workspace, String newFilename) { String branchedFi ...
- Mongodb之主从复制
本次在同一台主机启动两个端口进行配置 在文件夹/etc/mongod下面新建两个配置文件 一个主配置文件一个从配置文件 master.conf dbpath=/data/mongo-master lo ...
- 猿团专访 |以技术推动发展 msup 成为企业经验智库
随着企业的发展,几乎所有的管理者都有同样一个痛点:如何才能让自己的团队变得更强,技术能力更能匹配企业发展需求?msup的创立毫无疑问解决了这个难点. 麦思博(msup)有限公司发源于美国西雅图,是一家 ...
- 要学习的UML图
这是人人都是产品经理里的一节内容,这是个简单的例子,我觉得重要就摘抄一下 UML是要好好学习的一门课程呀
- matplotlib的下载和安装方法
官网:http://matplotlib.org/ Installation节 Visit the Matplotlib installation instructions. Installing节 ...