09河南省赛 机器人 广搜

机器人这个,做了两道广搜题后,这个就很顺理成章啦~很快滴写出来了~额,这几道题都比较象,基本就是套模板啦。用队列多了,就想确定下自己队列的写法。搜了下其他人的代码,基本队列都是Queue,我还是用Q吧。额,不过Queue比较直观呀~下次用。看到孙柯的广搜代码,C++的,好像包含了个头文件就OK了,真省事啊。。。我还是老老实实先写代码吧。入队出队本来想跟栈写不一样,栈是push和pop,后来觉得写EnQ太麻烦了,好吧,向党学习,写push和pop吧~呵呵~

 

这道题不难,没上一道题繁琐,只用判断两种情况就OK了,没有测试数据,我觉得我这个应该没错哈~只用向前和向后搜索,出界的话不搜。。

 

 

 

题目:

Problem Description

Dr.Kong设计了一个可以前进或后退机器人,该机器人在每个位置i会得到一个移动步数的指令Ki (i=1,2N),聪明的机器人自己会判断是要前进Ki步还是后退Ki步。

例如:给定指令序列(3 3 1 2 5),表示机器人在第1个位置时,可以前进3步到第4个位置,此时后退是不起作用的,出界;机器人在第2个位置时,可以前进3步到第5个位置,此时后退是不起作用的,出界;机器人在第3个位置时,可以前进1步到第4个位置,也可以后退1步到第2个位置等等。

你认为,对给定的两个位置 A,B, 聪明的机器人从A位置走到B位置至少要判断几次?

Input

【标准输入】
第一行: M 表示以下有M组测试数据(0<M<=8
接下来每组有两行数据
头一行:N A B ( 1
N 50, 1A,B N )
下一行: K1 K2..Kn ( 0<=Ki<=N )

Output

【标准输出】
输出有M行,第i行为第i组测试数据的最少判断次数, 若无法到达,则输出-1

Sample Input

2
5 1 5
3 3 1 2 5
8 5 3
1 2 1 5 3 1 1 1

Sample Output

3
-1

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值