[OpenJ_Bailian - 4070完全な配列]

完全な配列


説明:

アレイ[1、2、3]のために、それらの完全な配列に応じて小から大になります

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

あなたは正の整数nを与えられ、nは8未満、小から大への完全な配列のアレイ[1、2、...、N]に出力されます。

 

入力

整数の複数の行を入力します。エンド入力時に入力0。

出力

完全な置換基の各入力および出力のために。各行が1つの可能な配置、n個の整数の合計、空間、各ラインの末尾にスペースで区切られた各整数です。

サンプル入力

2

3

0

サンプル出力

1 2

2 1

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

トピックリンク:

https://vjudge.net/problem/OpenJ_Bailian-4070

 

STLの機能に教えます:

int型のnext_permutationの
 
メインINT()
{
 int型[3]、
[0] = 1; [1] = 2; [2] = 3;
 DO
{
COUT << [0] << "" < <<< "" << [2] << ENDL [1];
}ながら(next_permutation(A + 3)); //パラメータ3が配置された長さを意味する
 
場合が存在した後//配置は、それがtrueを返します。順列が最後の後継者ではない場合、falseを戻し、たびに、後継となる
 
}
 
出力:
 
 1 2 3
 1 3 2。
 2. 1. 3
 2. 3. 1
 3 1 2
 3 2 1。
 

あれば変化(next_permutationながら(+ 2)) ;
出力:
 12 3
 2 1 3
 
最初の2つの要素過去ソート辞書
、明らかになら一方変化(next_permutation(+ 1)); のみ出力:12 3

 
、配列は常に、次に実行next_permutation後、辞書の昇順に配置されるであろう最大の後継、等価循環されない場合
 
 、INTリスト[3] = {3,2,1 }。
next_permutation(リスト、リスト+ 3)。
COUT <<リスト[0] << "" <<リスト[1] << "" <<リスト[2] << ENDL。
 
//输出:1 2 3 
 
ACコード
書式#include <iostreamの> 
の#include <cstdioを> 
する#include <fstreamの> 
の#include <アルゴリズム> 
書式#include <cmath> 
の#include <両端キュー> 
の#include <ベクトル> 
の#include <キュー> 
の#include < 文字列 > 
の#include <CStringの> 
書式#include <マップ> 
書式#include <スタック> 
の#include < 設定 > 
書式#include <数値>
 使用して 名前空間はstdを、
typedefの長い 長いLL。
int型のn;

    一方、(CIN >> N && N!= 0 
    { 
        INT [ 15 ]。
        以下のためにint型 i = 0 ; iがn <; iは++ 
            [I] = I + 1 int型J。
        実行
        { 
            ためint型 i = 0 ; iがn <; iは++ 
            { 
//                 输出格式、特殊处理
                場合(I == N- 1 
                    COUT << [I]。
                
                    COUT<< [I] << "  " 
            } 
            COUT << ENDL。
        } 
        一方(next_permutation(+のN))。
    } 
}

 

おすすめ

転載: www.cnblogs.com/sky-stars/p/10948384.html