NC21228 貨幣系統(5月27日 完全揹包)

2021-10-06 15:54:40 字數 1075 閱讀 8743

題目鏈結

題目大意

給出乙個包含 n

nn 個不同面值的貨幣系統,最少要多少種貨幣能表示出原貨幣系統能表示的所有面額。

輸入24

3 19 10 6

511 29 13 19 17

輸出25

說明

在第一組資料中,貨幣系統(2, [3,10])和給出的貨幣系統(n, a)等價,並可以驗證不存在m < 2的等價的貨幣系統,因此答案為2。

在第二組資料中,可以驗證不存在m < n的等價的貨幣系統,因此答案為5。

備註:

1 <= t <= 20, 1 <= n <= 100, 1 <= a[i] <= 25000

分析:

我們可以把這個貨幣系統能表示出的所有面額都求出來,從這些面額中選取一部分,如果同樣能把所有面額都表示出來,那麼就是與原貨幣系統等價的。再想,那些不在貨幣系統中的面額都是從中被表示出來的,這些就是多餘的,不能選它們,那麼同樣貨幣系統中的那些可以由其它貨幣表示出來的也不能選。所以,最後問題就變成了在貨幣系統中哪些數能被其它數組成,剩下的數就是最小集合,貨幣無限次,這就是完全揹包,f[i

]f[i]

f[i]

表示能否組成 i

ii ,如果等於1表示可以,如果等於0表示不能組成,就記錄到答案中。

code:

// 

#include

using

namespace std;

int a[

110]

;bool dp[

25010];

//完全揹包,大的幣能否被小的幣表示出

intmain()

cout << ans << endl;

}return0;

}

牛客網 每日一題 5月27日題目精講 貨幣系統

在的國度中共有n種不同面額的貨幣,第i種貨幣的面額為a i 你可以假設每一種貨幣都有無窮多張。為了方便,我們把貨幣種數為n 面額陣列為a 1 n 的貨幣系統記作 n,a 在乙個完善的貨幣系統中,每乙個非負整數的金額x 都應該可以被表示出,即對每乙個非負整數x,都存在n個非負整數t i 滿足a i x...

2023年5月最新桌面和移動裝置系統市場份額分析

了解主流系統的市場份額對於我們開發相應軟體是一件非常有幫助的事情。下面就是2014年最新的桌面 移動裝置系統市場份額分析 1.desktop系統份額 儘管市場份額下降,但由於下降的比例較小,從圖可以看到,windows系統仍舊佔據著桌面電腦系統的主導地位。了解了整體的市場份額,讓我們來看看windo...

window10系統5月8日補丁導致不能登入伺服器

window 10系統5月8日更後,遠端登入提示資訊 與配置了 強制更新的客戶端 的伺服器配對的未修補的 windows 8.1 之前的客戶端和 windows server 2012 r2 客戶端 這些錯誤是由未修補的 windows 8.1 windows server 2012 r2 和更高版...