自転車トレーニングアルゴリズム

#アルゴリズムのトレーニング自転車駐車
リソースの制約が
タイムリミット:1.0秒メモリ制限:256.0メガバイトの
問題の記述は
  最初の自転車に加えて、n次の自転車小屋に停止した、それぞれのバイクはちょうど駐車小屋に駐車しているだろう左または右の自転車。(例えば駐車小屋は、左から右に番号が付け3台の自転車、している:3,5,1今2〜5バイクに駐車4台のバイクと番号は、今の番号駐輪場小屋を残しましたそれらは:3,2,5,1)。N所与駐車自転車の場合、最終的な出力順番に番号駐車自転車を流します。
入力フォーマット
  整数nの最初の行の。
  第二のライン整数x。これは、最初の自転車の数を表します。
  三つの整数の次のn-1行は、Y、Z、X。
  Z = 0は、xは自転車の数はちょうど自転車番号Yの左側に駐車表す場合
  、Z = 1、xは自転車の数がちょうど数y自転車に駐車表す
出力形式
  右出力駐車左から特許自転車小屋
サンプル入力
4。
3。
1 3 1
2 0 1
2 1 5。
サンプル出力
3251
のデータサイズと表記
  N <= 100000の
  自転車の正の整数ではない100,000以下。

タイムアウトコード80
#### 主な理由は、非常に時間がかかる間に配列全体####を介して非常に大きなN、可変の長さである
重複コード

 1 #include<iostream>
 2 #include<vector>
 3 //anthor:ZQ
 4 using namespace std;
 5 int main(){
 6     vector<int>obj;
 7     vector<int>::iterator it;
 8     int n,ns,nq,flag,n1;
 9     cin>>n;
10     cin>>n1;
11     obj.push_back(n1);
12     for(int i=1;i<n;i++){
13         cin>>ns>>nq>>flag;
14         for(it=obj.begin();it!=obj.end();it++){
15             if(*it==nq){
16                 if(flag==0){
17                     obj.insert(it,ns);
18                 }else{
19                     obj.insert(it+1,ns);
20                 }
21                 break; 
22             }
23         }
24     }
25     for(it=obj.begin();it!=obj.end();it++){
26         cout<<*it<<" ";
27     }
28     return 0;
29 } 

コードをコピーし
たコードを改善するために、

###)機能###ライブラリーを見つけると(呼び出し、自転車のための位置を探して行く必要はありません直接ロック位置

コード:

复制代码
 1 #include<iostream>
 2 #include<vector>
 3 #include<algorithm>
 4 //anthor:ZQ
 5 using namespace std;
 6 int main(){
 7     vector<int>obj;
 8     vector<int>::iterator it;
 9     vector<int>::iterator position;
10     int n,ns,nq,flag,n1;
11     cin>>n;
12     cin>>n1;
13     obj.push_back(n1);
14     for(int i=1;i<n;i++){
15         cin>>ns>>nq>>flag;
16         position=find(obj.begin(),obj.end(),nq);
17         if(flag==0){
18             obj.insert(position,ns);
19         }else{
20             obj.insert(position+1,ns);
21         }
22     }
23 //        for(it=obj.begin();it!=obj.end();it++){
24 //            if(*it==nq){
25 //                if(flag==0){
26 //                    obj.insert(it,ns);
27 //                }else{
28 //                    obj.insert(it+1,ns);
29 //                }
30 //                break; 
31 //            }
32 //        }
33     for(it=obj.begin();it!=obj.end();it++){
34         cout<<*it<<" ";
35     }
36     return 0;
37 } 
复制代码

再現は、ソース明記してください
BlueBridgeOJ:ラベルを

リリース元の4件の記事 ウォンの賞賛0 ビュー1590

おすすめ

転載: blog.csdn.net/qq_44139941/article/details/104536502