| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:水题~最基础的BFSIn Reply To:水题~最基础的BFS Posted by:xiexinxinlove at 2014-08-06 09:06:24 >
> #include <iostream>
> #include <cstdio>
> #include <cstring>
> #include <queue>
> using namespace std;
> const int Max = 100000 + 10;
> int vis[Max];
> int t[Max]; //记录时间
> int n,k;
>
> void bfs()
> {
> int now,temp;
> queue<int> q;
> q.push(n);
> while(!q.empty())
> {
> now = q.front();
> q.pop();
> if(now == k)
> {
> cout<<t[now]<<endl;
> return;
> }
>
> for(int i=1; i<=3; i++)
> {
> if(i == 1)
> {
> temp = now + 1;
> }
> if(i == 2)
> {
> temp = now - 1;
> }
> if(i == 3)
> {
> temp = now * 2;
> }
> if(!vis[temp] && temp >= 0 && temp < Max)
> {
> vis[temp] = 1;
> t[temp] = t[now] + 1;
> q.push(temp);
> }
> }
> }
> }
>
> int main()
> {
> while(scanf("%d %d",&n,&k) != EOF)
> {
> memset(vis, 0, sizeof(vis));
> bfs();
> }
> return 0;
> }
>
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator