混合数(網羅法)ブルーブリッジカップのタイトル

問題の説明(ブルーブリッジカップの練習システムが提出することができます)

69 258 + 3 = 714分の100:100は、混合画分の形で表すことができます。

82 + 100 = 197分の3546:それはまた、のように表すことができます。

注前記分数、番号1〜9に見える一度だけ、それぞれ(0を含みません)。

このような混合割合は、11 100の表記があります。

入力形式

標準入力からの正の整数N(N <×1000 1000)

出力フォーマット

デジタル番組を出力してデジタル1〜9種の数が示される全てからなる漏れ分数なし省略する。

注:各々の出力に数値表現でのみ統計を言っ必要ありません!

サンプル入力1
100
サンプル出力1
11
サンプル入力2
105
サンプル出力2
6
 
(とりわけ)I問題解決のアイデア:列挙方法
数値が異なるため、配列は[1,2,3,4,5,6,7,8,9]、その後、完全な配列が配置されて初期化することができます。前述の順列及び組合せのそれぞれについて、それは、三つに、B、Cカットした後の、B、Cの各組み合わせの数を取ります。
例えば、アレイは、完全配列[3,6,9,2,5,8,7,1,4]である場合、最初の値として、= 3の場合には(もちろん、36369さらにを取ることができます.. 。、前提は、以上のnはない)、次にB、この値のcが、それらのいずれかが前に「/」、「/」の間に挿入され、3後に開始、撮影することができ、B、Cは、戻って、(b)に、C値は、それが+1であることを、+ B / C == Nを確認するたびに得られます。
 
順列が取得されると(私も取得するにはnext_permutation()関数を使用)、利用可能
場合= 3、B、C、好ましくは6 / 9258714,69 / 258714,692 / 58714 ...  
場合= 36、B、C、好ましくは9 / 258714,92 / 58714,925 / 8714 ...
場合場合= 369、B、C、好ましくは2 / 58714,25 / 8714,258 / 714 ...(N = 100であれば、時間は、誤差の値です)
......
 
詳細:cが0にはできません
 
 
書式#include <iostreamの> 
の#include <アルゴリズム> 使用して名前空間はstdを、// 拿数字INT toNum(INT *データ、INT S、int型E){
     int型 RET = 0 INT I = S; I <= E; I ++ ){ 
        RET = RET * 10個の + データ[I]; 
    } 戻りRET。
} int型のmain(){
     int型のデータ[ 10 ]。
    整数nは、ANS、S、E、A、B、C、フラグ。
    しばらく(〜のscanf(

 



    

" %のD "、およびN-)){
         ためINT I = 0 ; I < 10 ; I ++)データ[I] = I; 
        ANS = 0 ;
         行い{ 
            S = E = 1。;
             ながら1 ){ 
                A = toNum (データ、S、E); //は、得られた値を決定
                場合(A> = N-)BREAKを ; // 取得した値は、断面nよりも大きい場合、エラーがあまりにも記載されているが、直接配置されている次 
                 // からメークスコア右の1桁の数字だけずれているために、左
                のためにint型= E + I 1、I < 10 - 1。 ; I ++){ // そうでない場合は、分母がゼロである、番号Cが存在することを保証しなければならないので、I <10-1 
                    B = toNum(データ、+ E 1 、I); 
                    C = toNum(データ、I + 19 );
                     IF!(Bの%Cは、= 0続行;
                     IF(A + B / C == N-)ANS ++ ; 
                } 
                E ++; // 移動
            } 
        } ながら(next_permutation(データ+ 1、データ+ 10));     // 完全な配列 
        COUT ANS << << ENDL; 
    } 
    戻り 0 ; 
}

 

ここでは沈黙の音があります。

 
 
 

おすすめ

転載: www.cnblogs.com/hello-dummy/p/12178757.html