硬幣
description
太空飛行員bob有一天來到火星上,他有收集硬幣的習慣。於是他將火星上所有面值的硬幣都收集起來了,一共有n種,每種只有乙個:面值分別為a1,a2… an。 bob在機場看到了乙個特別喜歡的禮物,想買來送給朋友alice,這個禮物的**是x元。bob很想知道為了買這個禮物他的哪些硬幣是必須被使用的,即bob必須放棄收集好的哪些硬幣種類。飛機場不提供找零,只接受恰好x元。
input
第一行包含兩個正整數n和x。(1 <= n <= 200, 1 <= x <= 10000)
第二行從小到大為n個正整數a1, a2, a3 … an (1 <= ai <= x)
output
第一行是乙個整數,即有多少種硬幣是必須被使用的。
第二行是這些必須使用的硬幣的面值(從小到大排列)。
sample input
5 181 2 3 5 10
sample output
25 10
hint
輸入資料將保證給定面值的硬幣中至少有一種組合能恰好能夠支付x元。
如果不存在必須被使用的硬幣,則第一行輸出0,第二行輸出空行。
看一眼就知道是揹包模型啦!
/*by:1879570236
2016-4-7 22:47
*/#include#include#include#include#include#includeusing namespace std;
int a[10005],f[10005];
int ans[10005],num[10005];
int main()
}//f[i]表示湊成i塊錢的方案數
for(i=1;i<=n;i++)
if(ans[x]==0)num[++cnt]=a[i];
} cout<
容斥原理 數論
兩個集合的容斥關係公式 a b a b a b a b 重合的部分 三個集合的容斥關係公式 a b c a b c a b b c c a a b c 最後可以推廣到n個集合,集合裡的元素為奇數則加,偶數減 hdu 4135 很簡單,直接求出所有的質因子,然後容斥解決 author crystal ...
容斥原理,反演
大概知道為什麼自己水平比較渣啦。一開始只會反演,然後被容斥驚豔到。然後寫了一段時間容斥,反演忘光光。所以融會貫通真的很難。多校的三道題,當時是用反演做的。事實上以前就知道容斥跟莫比烏斯函式值的關係,然後熟練掌握 然後一段時間沒用就忘了哈。簡單來說就是,求乙個數和乙個集合中的數互質的個數,把集合中乙個...
關於容斥原理
容斥原理大概是這樣的,以長方體體積並為例,我們需要用容斥原理容斥出若干個長方體體積的並.首先,我們將每個長方體標號為1 n,那麼這些長方體的取捨顯然可以表示為乙個二進位制的數字s.設f s 表示長方體取捨狀態為s時,長方體的體積並,於是我們可以知道f 111111 有n個1 就是我們最終的所求.好,...