洛谷P5020 貨幣系統 完全揹包

2022-05-20 14:21:18 字數 483 閱讀 6960

題目大意:給定 n 個數,求在這 n 個數中至少選出幾個數能表示出所有數字,輸出最少的個數。

題解:由於只有小的數字可以表示大的數字,因此首先需要對這 n 個數字進行從小到大排序。排序之後就變成一道不定個數的數字組合問題,即:完全揹包思想。遍歷每乙個數字,若該數字不能由之前的數字表示出來,則將答案加一,並將這個數字能夠表示的數字進行記錄即可。

**如下

#include using namespace std;

const int maxn=110;

const int maxv=25010;

int n,ans,a[maxn];

bool f[maxv];

void read_and_parse()

void solve()

printf("%d\n",ans);

}int main()

return 0;

}

洛谷P5020貨幣系統

這個題打眼看上去可能是乙個數論或者dp,其實我們可以簡化一下題意,即 給定乙個集合 alpha 找到幾個數使得這幾個數可以拼湊起來這個集合裡所有的數,且需要使這些數的個數最小。這樣這個題就不難理解了,首先看到資料範圍,發現暴搜可以騙不少分,但其實這個題暴搜是可以a的,主要就是可以如何使暴搜的速度加快...

洛谷 P5020 貨幣系統(DP)

題意 略。題記 看題目樣例可以看出乙個規律,新貨幣是舊貨幣的子集。意思就是在原貨幣系統中可以找到一些小面額的貨幣去表示乙個大面額的貨幣。證明略 不會證明 dp i 表示面額為i能否用貨幣表示出來,則f i f i f j 時間複雜度 o 2500010020 include include incl...

P5020 貨幣系統

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