poj3278 DFS
Posted Dysania_l
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj3278 DFS相关的知识,希望对你有一定的参考价值。
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 97240 | Accepted: 30519 |
Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.
* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.
If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Output
Sample Input
5 17
Sample Output
4
Hint
//#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include<map> #include<queue> #include<stack> #include<set> #include<list> using namespace std; #define me0(x) memset(x,0,sizeof(x)) #define pb(x) push_back(x) #define ll long long const int Mod = 1e9+7; const int inf = 1e9; const int Max = 2e5+10; vector<int>vt[Max]; queue<int>q; int dx[] = {-1, 1, 0, 0}; int dy[] = { 0, 0, -1, 1}; //void exgcd(ll a,ll b,ll& d,ll& x,ll& y){if(!b){d=a;x=1;y=0;}else{exgcd(b,a%b,d,y,x);y-=x*(a/b);}} //ll inv(ll a,ll n){ll d, x, y;exgcd(a,n,d,x,y);return (x+n)%n;} ??? //int gcd(int a,int b) { return (b>0)?gcd(b,a%b):a; } ??С??? //int lcm(int a, int b) { return a*b/gcd(a, b); } ??С???? int cnt[Max]; bool vis[Max]; void bfs(int l,int r) { q.push(l); vis[l] = 1; cnt[l] = 0; while(!q.empty()){ int x = q.front(); q.pop(); if(x==r){ cout<<cnt[r]<<endl; break; } if(x-1>=0&&!vis[x-1]){ vis[x-1] = 1; q.push(x-1); cnt[x-1] = cnt[x] + 1; } if(x<=r&&!vis[x+1]){ vis[x+1] = 1; q.push(x+1); cnt[x+1] = cnt[x] + 1; } if(x<=r&&!vis[x*2]){ vis[x*2] = 1; q.push(x*2); cnt[x*2] = cnt[x] + 1; } } } int main() { int n,m; cin>>n>>m; me0(vis); bfs(n,m); return 0; }
以上是关于poj3278 DFS的主要内容,如果未能解决你的问题,请参考以下文章