qdu 湊數題 01揹包

2022-05-24 17:15:07 字數 1116 閱讀 6912

description

小q手裡有n(n<=1000) 個硬幣,每枚硬幣有一定的金額(200=>x>=1)他想知道,用這些硬幣(每枚硬幣只能用一次,但可能會有等面值的用兩次) 能組成多少種不同的金額?

input

第一行 n,表示第二行一共有n個數字,第二行 表示n個數字

output

第一行 輸出 m, 表示可以組成多少種不同的金額第二行 按照從小到大的順序輸出所有的金額。 注意,每行的結尾,不要有空格,否則你的答案可能會被判錯。

sample input 1 

2

1 2

sample output 1

3

1 2 3

sample input 2 

2

1 1

sample output 2

2

1 201揹包的未裝滿的情況

**:

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

const

int maxn=1e5+5

;typedef

long

long

ll;using

namespace

std;

int a[maxn],dp[200005

];int

main()

for(int t=1;t<=sum;t++)

dp[0]=0

;

for(int t=1;t<=n;t++)

}int s[200005

];

int cnt=0

;

for(int t=1;t<=sum;t++)

}cout

for(int t=0;t)

else

}return0;

}

0 1揹包變形題

將乙個陣列分成兩部分,不要求兩部分所包含的元素個數相等,要求使得這兩個部分的和的差值最小。比如對於陣列,可以分成和,使得這兩部分的差值最小。這道題為什麼說是0 1揹包問題的變形呢,因為0 1揹包問題是每個蘋果裝或者不裝,使得能裝的總重量最重,這道題也類似,什麼時候兩個陣列的和的差值最小呢?當然是都為...

包子湊數 完全揹包

小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包子來,使得這若干籠中恰好一共有x個包子。比如一共有3種蒸籠,分別能放3 4和5個包子。當顧客想買11個...

揹包 01揹包

01揹包 有n種物品與承重為m的揹包。每種物品只有一件,每個物品都有對應的重量weight i 與價值value i 求解如何裝包使得價值最大。dp i,v 表示前i個物體 包括第i個 面對容量為v的揹包的最大價值,c i 代表物體i的重量,w i 代表物體i的價值 如果第i個物體不放入揹包,則揹包...