程序设计第二十一题 车牌号问题

Problem Description

杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。
杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。
不吉利的数字为所有含有4或62的号码。例如:
62315 73418 88914
都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。
你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。

Input

输入的都是整数对n、m(0<n≤m<1000000),如果遇到都是0的整数对,则输入结束。

Output

对于每个整数对,输出一个不含有不吉利数字的统计个数,该数值占一行位置。

第二十一题:该题实质是求数位上不能有4也不能有连续的62,在枚举的时候判断是否有4,对于62的话,涉及到两位,当前一位是6或者不是6的两种不同情况计数是不同的。感觉思路和给一个数求取出它的各位,然后判断差不多。但实际操作要比这麻烦,我一开始没有做出来,后来询问高手知要运用 x[i]

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
长度相同且为 $m$,小明的车在每条赛道上的位置也相同,都在起点位置。小明希望通过切换赛道的方式,到达终点。切换赛道需要一定时间,切换时不能行驶。现在给出小明在每条赛道上行驶的速度,以及在相邻两条赛道之间切换需要的时间,求小明最短需要多长时间才能到达终点。 ## 输入格式 第一行包含两个整数 $n$ 和 $m$,表示赛道的数量和长度。 接下来 $n$ 行,每行包含 $m$ 个整数 $v_{i,j}$,表示小明在第 $i$ 条赛道上行驶到终点的速度。 接下来 $n-1$ 行,每行包含 $m$ 个整数 $t_{i,j}$,表示从第 $i$ 条赛道到第 $i+1$ 条赛道的切换时间。 注意:在第 $n$ 条赛道上没有切换赛道的时间。 ## 输出格式 输出一个数,表示小明最短需要多长时间才能到达终点,保留 $2$ 位小数。 ## 数据范围 $1\le n,m\le 1000$, $1\le v_{i,j}\le 1000$, $1\le t_{i,j}\le 10^6$, 输入保证 $v$ 严格单调递减。 ## 输入样例 ``` 3 4 10 10 10 10 8 8 8 8 5 5 5 5 3 4 5 6 2 3 4 5 ``` ## 输出样例 ``` 9.33 ``` ## 解 本是一道比较简单的DP题目,考虑用 $f_{i,j}$ 表示小明在赛道 $i$ 上行驶到终点的最短时间,其 $j$ 表示小明在赛道 $i$ 上的位置。设 $t_{i,j}$ 表示从赛道 $i$ 切换到赛道 $i+1$ 的时间,那么有以下转移方程: $$ f_{i,j}=\min\{f_{i,j-1}+\frac{1}{v_{i,j}},f_{i-1,j}+t_{i-1,j-1}+\frac{1}{v_{i,j}}\} $$ 其 $f_{0,j}=0$,$f_{i,0}=f_{i-1,0}+\frac{1}{v_{i,0}}$。 最终答案为 $f_{n,0}$。 需要注意的是,由于题目 $v_{i,j}$ 是单调递减的,因此在转移时,第一个状态转移方程的 $j$ 一定要从大到小枚举,第二个状态转移方程的 $j$ 一定要从小到大枚举,这样才能保证状态转移是正确的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值