Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

这样做是错的,在其他oj上是wrong anwer的进

Posted by shuyezi at 2012-07-17 10:38:30 on Problem 3278
In Reply To:Re:一次AC~~~纪念一下~~~ Posted by:201165148 at 2012-06-21 19:03:23
> #include <stdio.h>
> #include <string.h>
> 
> struct data
> {
>     int x,min;
> }queue[100000],now;
> 
> int flag[100000];
> int in,out;
> int N,K;
> 
> int bfs()
> {
>     in=out=0;
>     queue[in].x=N;
>     queue[in].min=0;
>     memset(flag,0,sizeof(flag));
>     flag[N]=1;
>     in++;
> 
>     while(1)
>     {
>         now=queue[out++];
> 
>         if(now.x==K)
>             return now.min;
>         if(now.x+1<=100000 && !flag[now.x+1])
>         {
>             queue[in].x=now.x+1;
>             queue[in++].min=now.min+1;
>             flag[now.x+1]=1;
>         }
>         if(now.x-1>=0 && !flag[now.x-1])
>         {
>             queue[in].x=now.x-1;
>             queue[in++].min=now.min+1;
>             flag[now.x-1]=1;
>         }
>         if(now.x*2<=100000 && !flag[now.x*2])
>         {
>             queue[in].x=now.x*2;
>             queue[in++].min=now.min+1;
>             flag[now.x*2]=1;
>         }
>     }
>     return 213;
> }
> 
> int main()
> {
>     while((scanf("%d%d",&N,&K))!=EOF)
>     {
>         printf("%d\n",bfs());
>     }
>     return 0;
> }
这样做没有考虑在队列里虽然一个点先到达,但可能通过其它方式路径更短……

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator