| ||||||||||
| 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 | |||||||||
为啥3278我的结果和正确的结果一样却还说wrong answer???#include<iostream>
#include<queue>
using namespace std;
queue<int> iq;
int front=0,rear=1,trear=1,cnt=0;
int visit[100000]={0};
void bfs(long n,long k){
while(front<rear){
long n=iq.front();
iq.pop();
if(n==k){cout<<cnt<<endl; return;}
if(n-1<=k&&!visit[n-1]){iq.push(n-1);visit[n-1]=1; ++trear;}
if(n+1<=k&&!visit[n+1]){iq.push(n+1);visit[n-1]=1; ++trear;}
if(n*2<=k&&!visit[n*2]){iq.push(n*2);visit[n*2]=1; ++trear;}
++front;
}
front=rear; rear=trear;++cnt;
bfs(iq.front(),k);
}
int main(){
int n,k;
//memset(visit,0,sizeof visit);
cin>>n>>k;
if(n>=k) {cout<<n-k<<endl;return 0;}
iq.push(n);
visit[n]=1;
bfs(n,k);
//system("pause");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator