有\(n(n\le100)\)種不同的貨幣,每種貨幣的面額為\([1,25000]\)之間的乙個整數。若兩種貨幣系統能夠組合出來的數是相同的的,那我們就稱這兩種貨幣系統是等價的。給定乙個貨幣系統,求不同面額貨幣數最少的等價的貨幣系統。
將面額從小到大排序,如果一種面額能夠被其它面額表示出來,那麼這種面額就是多餘的。因此只需要跑乙個揹包即可。
#include#include#include#includeinline int getint()
const int n=101,m=25001;
int a[n];
bool f[m];
int main()
std::sort(&a[1],&a[n]+1);
memset(f,0,sizeof f);
f[0]=true;
int ans=0;
for(register int i=1;i<=n;i++)
} printf("%d\n",ans);
} return 0;
}
NOIP2018 貨幣系統
我們發現這個新的系統的貨幣一定是都屬於原來的集合內的,所有我們只需要判斷原來的數能不能被其他的數替代。然後我們自然就有一種想法就是從小到大找。這個時候如果這個數無法被替代,那麼這個數一定會被選中,如果能被替代就不要了。而從小到大正好可以避免漏選的情況,我們發現a ia i ai 都比較小,我們就可以...
NOIP2018提高組初賽
在一條長度為 1 的線段上隨機取兩個點,則以這兩個點為端點的線段的期望長度是 1 3 frac13 31 解析 使用排除法解決問題,當左邊的點在左邊端點是,期望長度為1 2 frac12 21 所以答案一定小於1 2 frac12 21 為了統計乙個非負整數的二進位制形式中 1 的個數,如下 int...
NOIp2018 提高組遊記
上午請假,沒去學校,在家裡刷了十多道題,中午12點出發去杭州 16點到達賓館,和hsy,oyyj嘮了會兒嗑,開始刷模板 晚飯炸雞真香,和xjd學長聊了一會兒,又和鄒sir聊了一會兒,回顧了自己的部落格,22點準時睡覺 失眠了,22 00 02 00,我不知道我是怎麼度過的,作為提高萌新,真的有點緊張...