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:我很无语G++不过C++倒能过In Reply To:我很无语G++不过C++倒能过 Posted by:154115081034 at 2016-07-27 17:53:01 > #include <iostream> > #include <cstdio> > #include <cstring> > #include <algorithm> > #include <stack> > #include <queue> > > using namespace std; > typedef long long LL; > #define oo 0x3f3f3f3f > #define N 200100 > > int vis[N]; > > struct node > { > int x, s; > } a, b; > > int BFS(int n, int k) > { > queue<node> q; > a.x=n; > a.s=0; > q.push(a); > vis[n]=1; > > while(!q.empty()) > { > a=q.front(); > q.pop(); > if(a.x==k) > return a.s; > for(int i=1; i<=3; i++) > { > if(i==1) b.x=a.x+1; > else if(i==2) b.x=a.x-1; > else b.x=a.x*2; > > if(b.x<0 || b.x>100000) > continue; > > if(!vis[b.x]) > { > vis[b.x]=1; > b.s=a.s+1; > q.push(b); > } > } > } > } > > int main() > { > int n, k; > > while(~scanf("%d%d", &n, &k)) > { > memset(vis, 0, sizeof(vis)); > if(n>=k) > printf("%d\n", n-k); > else > printf("%d\n", BFS(n, k)); > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator