3403ソリューションタイトルデータマッピングNOIP2013アナログ(標準IO)

タイトルを見てください:

説明

仕事の山を見るために、列のX少数のは、あなたが彼を助けるために、スマートたい、頭痛です。A = [A1、A2、...の列数検討 、アン]、 定義された変換F(A、K)= [ A2、A3 ,,,,。Akは、A1、Akは+ 2、+ Akの3 ,,,, A2K 、アラスカ+ 1、...]、すなわち、kのそれぞれ(全てオフの場合、サンプルを参照して、年間の新しい期間に最後の1未満のK)セグメントは、各セグメントの最初の移動のために、あります最後のセグメントへ。

今、小さなは、X F(F(F(F(疑問 [1,2,3、⋯、N]、2)、3)、⋯)、n)の結果を。
 

入力

入力行は、整数nを含んでいます。

出力

出力ラインは、列の最後の数を表し、n個の整数を含みます。
 

サンプル入力

4

サンプル出力

4231 

[例の説明]
F([1,2,3,4]、2)= [2,1,4,3]
F([2,1,4,3] ,. 3)= [1 、】4,2,3(グループ3は、個々に、そして最終的には、まだ3であるグループに移動)
、F([1,4,2,3] ,. 4)= [4,2,3 1]
 

データ制約

データの60%、1≤N≤10^ 3。

データの100%に、1≤N≤10^ 6。

 

詳細[思考]:

  まず第一に、私たちは、この質問は確かに単純なアルゴリズム(再生されている第一の反応ことがわかり怠惰な暴力 +)、この問題への肯定的な解決策が起こった剪定をシミュレートすることです

  我々は、シミュレーション、今すぐ初期値2(グループへの相系列を作成参照)、このシーケンスの各段階は、現在のグループに分割し、各フェーズに分割に従ってタイトルを記述することを意図しこのグループの最後尾に各グループの最初の要素。その60分を再生するには複雑さはO(N ^ 2)程度である時、非常に良い戦いは、確かに問題ありませんが、あなたはタイトルがいくつかのACプルーニングを作るためにしたい場合は100ポイントは、それを取得する方法です私たちは宇宙のこの質問を見ているので:524288キロバイトは、非常に大きな、私たちは時間のための貿易スペースの考え方に沿って最適化されています。

  私たちは、主に、純粋な暴力の原因は、各グループの他の要素と要素の開始は、このグループが前方に移動するグループの最後に移動した後、ゆっくりと、そして私たちは、もちろん非常に遅い位置を変更するforループを使用することを発見しました私たちは、この点で最適化し始めました。要素が尾を置く必要があり、各グループで見つけることができ、我々は次のグループの最初の位置にこのグループの最初の要素を入れて、その後、次のグループの最初の要素は次のセットを置きます最初のものは、そのようなグループは、我々はスペースを開くので、我々は要素を移動することはできません、とだけ最後のグループでうまく行くように、最後のグループに最初の要素のためのスペースを開く必要が我々これは、ACとなり、全パケットのn-1回、あなたはO(nlogn)の時間複雑性を落とすことができるように二倍のオープンスペース私たちは、好きではないが必要です。

以下のコードの場合:

書式#include <iostreamの> 
の#include <cstdioを>
 使用して 名前空間はstdを、
int型 HI、LO、今、nは、[ 2000010 ] = { 0 }、ボット。// 空间2倍
ボイド変化(){   // 进行分组 
    ボット= [LO]。// 暂时存放
    ためint型 I = 1.0; I <= HI; iが+ = NOW){
         場合(私は今+> HI){ 
            [ ++ HI] = ボット。
            LO ++ ;
            破ります; 
        } 
        スワップ(BOT、[私は今+])。// 交换
    } 
} 
int型のmain(){ 
    CIN >> N。 = 2 ; 
    LO = 1 = Nこんにちは。// 用LO、HI标记现在的开头和结尾元素位置
    のためのint型 i = 1 ; iが<= N; iが++)[I] = I。
    一方、(今<= N){ 
        変化()。 ++ ; 
    } 
    のためのint型 I = 1.0; I <= HI; iは++)COUT << [I] << "  " 
}

 

概要:これは、洪水の問題であり、あなたは慎重にACが(もちろん、私WAので40ポイント、頭脳を持っている必要が)することができます。

 

おすすめ

転載: www.cnblogs.com/tianbowen/p/11298446.html