最少硬幣問題 受限 NK1132

2022-01-25 06:14:18 字數 2282 閱讀 5588

1132: 最少硬幣問題

time limit: 1500 ms

memory limit: 10000 kb

total submit :

909(187 users)

accepted submit :

241(132 users)

page view : 9030

font style: aa

aa aa

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

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

程式設計任務:

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

輸入包括多組測試資料,每組輸入的第一行中只有1 個整數給出n的值,第2 行起每

行2 個數,分別是t[j]和coins[j]。每組輸入最後1 行是要找的錢數m。

對於每組輸入資料,輸出一行,即計算出最少硬幣數。問題無解時輸出-1。

3

1 32 3

5 318

5
福建省優質碩士課程《演算法設計與分析》教學組

view code

1

/*類似無窮硬幣 ,wa 2*/

3 #include 4 #include 5

using

namespace

std;67

const

int maxn = 15;8

intcoins[maxn],num[maxn];

9int

n,money;

10int ans[20010

];11

12int

main()

1328 cin>>money;

29//

最好先排序

30for(k=1; k<=money; k++)

3142

}43 ans[k] =min;44}

45if(ans[money]>=(money/max))

46 cout

47else

48 cout<

<

4950}51

52return0;

53 }

view code

#include #include 

using

namespace

std;

const

int maxn = 15

;int

coins[maxn],num[maxn];

intn,money;

int ans[maxn][20010

];int

main()

cin>>money;

for(i=0; i<=money; i++)

for(i=1; i)

for(j=0; j<=money; j++)

if(j

ans[i][j] = ans[i-i][j];

else

ans[i][j] = min(ans[i-i][j],ans[i-1][j-coins[i]] + 1

); cout

<1][money]<

}return0;

}

view code

/*

類似無窮硬幣 ,wa

*/#include

#include

using

namespace

std;

const

int maxn = 15

;int

coins[maxn],num[maxn];

intn,money;

int ans[20010

];int

main()

cin>>money;

//最好先排序

for(k=1; k<=money; k++)

}ans[k] =min;

}if(ans[money]>=(money/max))

cout

else

cout

<

<

}return0;

}

最少硬幣問題 受限 NK1132

1132 最少硬幣問題 time limit 1500 ms memory limit 10000 kb total submit 909 187 users accepted submit 241 132 users page view 9030 font style aaaa aa 設有n 種不...

最少硬幣問題

問題描述 有n種不同面值的硬幣,各硬幣面值存於陣列t 1 n 現用這些面值的錢來找錢 各面值的個數存在陣列num 1 n 中。程式設計任務 對於給定的1 n 10,硬幣面值陣列 各面值的個數及錢數m,0 m 2001,程式設計計算找錢m的最少硬幣數。input 第乙個數字n,後面n行每行兩個數,面值...

最少硬幣問題

本文內容遵從 cc版權協議 設有n 種不同面值的硬幣,各硬幣的面值存於陣列t 1 n 中。現要用這些面值的硬幣來找錢。可以使用的各種面值的硬幣個數與面值分別存於陣列coin 1 n 和t 1 n 中。對任意錢數0 m 20001,設計乙個用最少硬幣找錢m的方法,對於給定的1 n 10,硬幣面值陣列t...