NOIp2018提高組 貨幣系統

2022-05-20 03:48:08 字數 550 閱讀 3243

有\(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,我不知道我是怎麼度過的,作為提高萌新,真的有點緊張...