我們發現這個新的系統的貨幣一定是都屬於原來的集合內的,所有我們只需要判斷原來的數能不能被其他的數替代。
然後我們自然就有一種想法就是從小到大找。這個時候如果這個數無法被替代,那麼這個數一定會被選中,如果能被替代就不要了。而從小到大正好可以避免漏選的情況,我們發現a
ia_i
ai都比較小,我們就可以暴力修改乙個數能不能從已知的可以轉移的數轉移來,然後每次加入這個不可以替代的數的時候更新一下就可以了。
#include
#include
#include
#include
using
namespace std;
int a[
100]
;bool vis[
25001];
intmain()
cout<}return0;
}
NOIp2018提高組 貨幣系統
有 n n le100 種不同的貨幣,每種貨幣的面額為 1,25000 之間的乙個整數。若兩種貨幣系統能夠組合出來的數是相同的的,那我們就稱這兩種貨幣系統是等價的。給定乙個貨幣系統,求不同面額貨幣數最少的等價的貨幣系統。將面額從小到大排序,如果一種面額能夠被其它面額表示出來,那麼這種面額就是多餘的。...
完全揹包 NOIP2018 貨幣系統
在的國度中共有 n 種不同面額的貨幣,第 i 種貨幣的面額為 a i 你可以假設每一種貨幣都有無窮多張。為了方便,我們把貨幣種數為 n 面額陣列為 a 1.n 的貨幣系統記作 n,a 在乙個完善的貨幣系統中,每乙個非負整數的金額 x 都應該可以被表示出,即對每乙個非負整數 x 都存在 n 個非負整數...
noip2018 洛谷 P5020 貨幣系統
關鍵 要使m最小,m,b 中的數不能用 n,a 中的數表示出來 對於 3 19 10 6 19 10 3 3 3 6 3 3 只有3 和 10 不能被 n,a 中的數表示 所以m 2 只需要計算出存在多少個能被其它數組成的數計算出來就行了。法一 完全揹包 乙個數只能被比它小的數字組成而不能被比它大的...