P2347 砝碼稱重

2021-09-27 04:07:50 字數 1046 閱讀 9802

題目入口:p2347 砝碼稱重

寫在前面

本題是乙個簡單的 多重揹包

不用二進位制優化也毫無關係

甚至據說六個迴圈都能過…逃

如何記錄方案數:

if

(dp[i]

== i) ret++

;

解釋來說就是dp當前重量有(最優)方案說明此重量可實現,那麼結果加一

使用模版【模版】揹包問題彙總

//多重揹包模版(二進位制優化)

#include

#include

#include

using namespace std;

#define maxsize 100010

//注意最大物品數的修改

int wei[maxsize]

, num[maxsize]

, dp[maxsize]

;//物品重量 價值 數量 最優答案

int w=

;int

main()

for(

int i =

1; i <=

6; i++)if

(num[i])}

for(

int i =

1; i < pos; i++

)//01揹包

for(

int j = sum; j >= wei[i]

; j--

) dp[j]

=max

(dp[j]

, dp[j-wei[i]

]+wei[i]);

int ret =0;

for(

int i = sum; i >=

1; i--)if

(dp[i]

== i) ret++

;//如果當前重量有(最優)方案

printf

("total=%d\n"

, ret)

;return0;

}

P2347 砝碼稱重

題目描述 設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 輸入格式 輸入方式 a1,a2,a3,a4,a5,a6 表示1g砝碼有a1個,2g砝碼有a2個,20g砝碼有a6個 輸出格式 輸出方式 total n n表示用這些砝碼能稱出的不同重量的個數,但不包括乙個砝碼也不用...

P2347 砝碼稱重

題目鏈結 設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 輸入方式 a1 a2 a3 a4 a5 a6 表示1g砝碼有a1個,2g砝碼有a2個,20g砝碼有a6個 輸出方式 total n n表示用這些砝碼能稱出的不同重量的個數,但不包括乙個砝碼也不用的情況 1 1 0 ...

洛谷 P2347 砝碼稱重

時間限制1.00s 記憶體限制125.00mb 設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 輸入 1 1 1 0 0 0 0 輸出 1 total 3 方法一 sign j a i 1 思想類似於裝箱問題 include using namespace std con...