HDU 1521個の検索順列

順列

問題の説明
そこ財のn個の種類があり、各項目の番号を知っています。M選択した項目、そこからの置換の必要数。例えば、そこに2つの項目がA、Bがあり、その数は「AB」、「BA」二種類に配置されている選択項目から1、2です。
 

 

入力
各グループは、2本のデータ入力ラインを有し、最初の行は二つの数字であるN、M(1 <= M、N <= 10)、アイテムの数を示し、2行目の数を有するN、アイテムの数を示します。
 

 

出力
データ出力装置に対応する番号。(任意の動作が2 ^ 31を超えません)
 

 

サンプル入力
2 2 1 1
 

 

サンプル出力
2

 ACコード

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
整数 N、M、S、[ 11 ]。
ボイド DFS(INT X){
     もし(x == 0 ){ 
        S ++。リターン; 
    } 
    ためINT iは= 0、I <N; ++ i)が{
         場合([I]){ 
            [I] - 
            DFS(X - 1 )。
            [I] ++ ; 
        } 
    } 
} 
int型のmain(){
     一方(CIN >> N >> M)
    { 
        S = 0 以下のためにINT iが= 0、I <N; I ++ 
        { 
            scanf関数(" %のD "、および[I])。
        } 
        DFS(M)。
        coutの << S << てendl; 
    } 
    戻り 0 
}

DFSの場合は、唯一のバックトラックを必要としない解決策を見つけます

あなたが必要なすべての解決策を見つけるために必要がある場合

おすすめ

転載: www.cnblogs.com/m2364532/p/12331210.html