明日の夜、私は次を理解するために、リストをテストしたいです。
ソリューション:
フロントとリアがそれらを再接続するので、この質問については、私たちはリストを検討してください。
のは、正常な関係を維持するために、リストを使用してみましょう。私たちは、その後、列挙を降順。
(それは一入るので)それはいくつかの後ろにある場合、この数については、キューの圧力(出力する)に入れて
これは貪欲のプロセスを完了するために、リストを使用します。
コード:
書式#include <リスト> の#include <iostreamの> の#include <cstdioを> 使用して 名前空間はstdを、 int型のヘッド[ 500000 ]、次に[ 500000 ]。 int型のn、[ 500000 ]。 INT メイン(){ scanf関数(" %のD "、&N) 以下のために(int型私= 1 ++; iが<= N I){ scanf関数(" %のD "、および[I])。 ヘッドは、[i]は] = [I- 1 ]。 次の[[I - 1]] = [I]。 } のために(int型 I = N; I> = 1 ; - I){ 場合(次に[I]){ // 这里是I、故从小到大。 のprintf(" %d個の%のD " 、I、次に[私]); 次に[ヘッド[I] = 次の[次に[I]]。 ヘッド[次に[次に[I]]] =頭部[I]。// 次のI [次に[I]]。ヘッド=ヘッド[I]。 次に[次に[I] = 0 ; // 即ヘッド[次に[次に[I]]] =頭部[I]。 } } 戻り 0 。 }