Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

3278为啥数据稍微一大就运行错误??代码如下

Posted by harrymwz at 2009-08-02 16:41:33
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator