JZOJsenior2016.2017.04.08【NOIP 普及组】模拟赛C组 T2最小步数

Description

从起点到终点有N步,如果“走”第K步,将会得到A[K]元钱,A[K]可能为负数。
你也可以花100元钱“跳过”当前的这一步,即不会得到A[K]。但是任何时刻身上的钱都必须是非负的。开始时,你身上共有0元。给定数组A,求在能到达终点的情况下最小需要走过(即不是用100元钱跳过)的步数。注意:最后一步必须走,不能选择跳过。

Input

共有两行。
第一行为整数N(0<=N<=100)。
第二行有N个整数,第K个数为A[K],-10000<=A[K]<=10000,。

Output

一个整数,表示需要走的最少步数。若无法走到终点,输出-1。

Sample Input

6
30 30 30 30 30 30

Sample Output

5

Data Constraint

本题两种不同做法,以下是dfs的

思路:
直接深搜(有时要相信暴力)
当前若不够100块钱跳过去就只能走过去,否则,两者皆可
当钱<0时退出
注意,还有一个剪枝,在代码里自己理解

代码:

const
        maxn=10000000;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值