爱学习的站长www.mmic.net.cn

www.mmic.net.cn 欢迎学习共同成长
公告信息
www.mmic.net.cn 欢迎学习共同成长
文章分类
文章档案
文章
strange lift contest4 简单bfs 代码
2011/8/4 0:03:58
#include <stdio.h>
#include
<deque>
#include
<string.h>
using namespace std;

deque
<int>q;
int dp[4000000];
int floor[110000];
int visit[1100];

int main( )
{
int N, i, t, v,s ,e, flag;
while (scanf("%d",&N), N)
{
flag
= 0;
q.clear();
scanf(
"%d%d",&s,&e);
memset(dp,
0, sizeof(dp));
memset(visit,
0,sizeof(visit));
for (i = 1; i <= N; i++)
scanf(
"%d",&floor[i]);
q.push_back(s);
visit[s]
= 1;
while ( !q.empty( ))
{
t
= q.front( );
if (t == e) {
printf(
"%d\n",dp[t]);
flag
= 1;
break;
}
v
= t + floor[t];
if ( v >= 1 && v <= N && !visit[v]) {
q.push_back(v);
dp[v]
= dp[t] + 1;
visit[v]
= 1;
}
v
= t - floor[t];
if ( v >= 1 && v <= N && !visit[v]) {
q.push_back(v);
dp[v]
= dp[t] + 1;
visit[v]
= 1;
}
q.pop_front( );
}
if (!flag)
puts(
"-1");
}
return 0;
}

引自:ic买卖

新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"
 技术   浏览(2062)   评论(0)   关键字
  
Copyright © 2010-2020 power by CYQ.Blog - 秋色园 v2.0 All Rights Reserved