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

Re:一次AC~~~纪念一下~~~

Posted by 201165148 at 2012-06-21 19:03:23 on Problem 3278
In Reply To:一次AC~~~纪念一下~~~ Posted by:201165148 at 2012-06-21 19:03:11
#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