最少硬幣問題 (動態規劃)

2021-09-19 11:21:24 字數 763 閱讀 5386

最少硬幣問題

time limit: 1000 ms memory limit: 65536 kib

problem description

設有n種不同面值的硬幣,各硬幣的面值存於陣列t[1:n]中。現要用這些面值的硬幣來找錢。可以使用的各種面值的硬幣個數存於陣列coins[1:n]中。

對任意錢數0≤m≤20001,設計乙個用最少硬幣找錢m的方法。

對於給定的1≤n≤10,硬幣面值陣列t和可以使用的各種面值的硬幣個數陣列coins,以及錢數m,0≤m≤20001,計算找錢m的最少硬幣數。

input

輸入資料第一行中只有1個整數給出n的值,第2行起每行2個數,分別是t[j]和coins[j]。最後1行是要找的錢數m。

output

輸出資料只有乙個整數,表示計算出的最少硬幣數。問題無解時輸出-1。

sample input

31 3

2 35 3

18sample output

5hint

source

#include using namespace std;

int main()

int m;

cin>>m;

for(int i = 0; i < n; i++)

k++;}}

//cout

cout<<"-1"

cout

}

最少硬幣問題 動態規劃

需要找零x元,有n種面值硬幣,求找零最少需要硬幣個數的方法。這題如果用貪心演算法做,很可能無法得到最優解甚至無法無法找零,比如要找零11元,有三種硬幣,最優解是,用貪心就會先用10塊錢去消耗,那這題就無法完成。所以這題用動態規劃最合適,利用遞推和快取,動態規劃將問題拆分成若干個子問題,通過子問題的最...

動態規劃 最少硬幣問題

problem description 設有n種不同面值的硬幣,各硬幣的面值存於陣列t 1 n 中。現要用這些面值的硬幣來找錢。可以使用的各種面值的硬幣個數存於陣列coins 1 n 中。對任意錢數0 m 20001,設計乙個用最少硬幣找錢m的方法。對於給定的1 n 10,硬幣面值陣列t和可以使用的...

動態規劃 最少硬幣問題

time limit 1000 ms memory limit 65536 kib problem description 設有n種不同面值的硬幣,各硬幣的面值存於陣列t 1 n 中。現要用這些面值的硬幣來找錢。可以使用的各種面值的硬幣個數存於陣列coins 1 n 中。對任意錢數0 m 20001...