0/1ナップザック問題 - 最小コイン

単純にタイトルの下:

N使用される任意の最小コインによる組成物の所定量を求め、1.5.10.25.50それぞれ、コインを与え

 

タイトルのアイデアを実行します。

すべての金額(この量は、対象の制限されることに注意してください)を、埋めた後、徐々に使用コインの数を更新するために、コインの量を増加させる最小のコインとの最初の

 

コード:

#include <ビット/ STDC ++。H>

使用して 名前空間はstdを、

INTマネー[ 5 ] = { 15102550 };
 INT DP [ 300 ];
 // それぞれの量に相当するコインの最小数を見つけます。

ボイド{)(解く
     ためINT iは= 0 ; I < 251 ; I ++ 
        [I] DP = INT_MAX。
    DP [ 0 ] = 0 ;
    以下のためにINT iが= 0 ; I < 5 ; I ++ ){
         ためINT J =お金を[I]; J < 251 ; J ++ ){
            DP [J] =分(DP [J]、DP [Jマネー[I] + 1 )。
        }
    }
} 

int型のmain()
{
    int型のn;
    解決する();
    一方、(CIN >> N){
        COUT << DP [N] << ENDL。
    }
    リターン 0 ;
}

 

おすすめ

転載: www.cnblogs.com/jingshixin/p/12304124.html