首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

搜寻:poj 3278 Catch That Cow(广搜)

2012-11-03 
搜索:poj 3278 Catch That Cow(广搜)【转】http://blog.csdn.net/zxy_snow/article/details/5738154?#includ

搜索:poj 3278 Catch That Cow(广搜)

【转】http://blog.csdn.net/zxy_snow/article/details/5738154

?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Q[300000];
int count[300000];
int sta[300000];

int n,head,tail;
void Enq(int x)
{
??? Q[head++] = x;
}
int Deq(void)
{
??? return Q[tail++];
}
int Qempty()
{
??? if( head == tail)
??????? return 1;
??? return 0;
}
int main(void)
{
??? int N,K,temp;
??? while(scanf("%d%d",&N,&K)!=EOF)
??? {
??????? head = 0;
??????? tail = 0;
??????? memset(count,0,sizeof(count));
??????? memset(Q,0,sizeof(Q));
??????? memset(sta,0,sizeof(sta));
??????? Enq(N);
??????? sta[N] = 1;
??????? while( !Qempty() )
??????? {
??????????? N = Deq();
??????????? if( N == K)
??????????? {
??????????????? printf("%d/n",count[N]);
??????????????? break;
??????????? }
??????????? temp = N+1;
??????????? if( temp<=100000 && sta[temp] == 0)
??????????? {
??????????????? sta[temp] = 1;
??????????????? count[temp] = count[N] + 1;
??????????????? Enq(temp);
??????????? }
??????????? temp = N-1;
??????????? if( temp>=0 && sta[temp] == 0)
??????????? {
??????????????? sta[temp] = 1;
??????????????? count[temp] = count[N] + 1;
??????????????? Enq(temp);
??????????? }
??????????? temp = N*2;
??????????? if( temp<=100000 && sta[temp] == 0)
??????????? {
??????????????? sta[temp] = 1;
??????????????? count[temp] = count[N] + 1;
??????????????? Enq(temp);
??????????? }???????
??????? }
??? }
system("pause");
return 0;
}

热点排行