| ||||||||||
| 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为啥数据稍微一大就运行错误??代码如下#include<iostream>
#include<deque>
using namespace std;
int num[100001]={0};
int BFS(int n,int k){
deque<int> ideque(0);
int count=0;
deque<int>::iterator iter=ideque.begin();
ideque.push_back(n);
num[n]=1;
while(1){
deque<int>::iterator p=ideque.end();
while(iter!=p){
if(*iter>=k) return n-k;
if(*iter+1==k|*iter-1==k||2*(*iter)==k) return ++count;
if(*iter+1<k&&num[*iter+1]==0){
ideque.push_back(*iter+1);
num[*iter+1]=1;
}
if(*iter-1<k&&num[*iter-1]==0){
ideque.push_back(*iter-1);
num[*iter-1]=1;
}
if(2*(*iter)<k&&num[2*(*iter)]==0){
ideque.push_back(2*(*iter));
num[2*(*iter)]=1;
}
++iter;
ideque.pop_front();
}
++count;
}
return count;
}
int main(){
int n,k;
cin>>n>>k;
cout<<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