百練 4141 砝碼稱重

2021-10-04 21:22:00 字數 964 閱讀 3812

總時間限制: 1000ms

記憶體限制:65536kb

描述設有1g、2g、3g、5g、10g、20g的砝碼各若干枚(其總重<=1000),要求:計算用這些砝碼能稱出的不同重量的個數,但不包括乙個砝碼也不用的情況。

輸入一行,包括六個正整數a1,a2,a3,a4,a5,a6,表示1g砝碼有a1個,2g砝碼有a2個,……,20g砝碼有a6個。相鄰兩個整數之間用單個空格隔開。

輸出以「total=n」的形式輸出,其中n為可以稱出的不同重量的個數。

樣例輸入

110

000

樣例輸出
total=

3

提示

樣例給出的砝碼可以稱出1g,2g,3g三種不同的重量。

思路採用動態規劃的方法來做。

對於質量 i , dp [ i ] = 1,表示砝碼可以組成重量 i ;dp [ i ] = 0,表示不可以組成。

我們依次處理每個砝碼,對於第 j 個砝碼,質量為 wj 。

推導公式為:

dp [ i - wj ] = 1 ==> dp [ i ] = 1 (若 i - wj 可以稱到,則 i 也可以被稱到)

**:

#include

#include

int dp[

1010];

int kg[6]

=;//記錄每種砝碼的質量

int num[6]

;//記錄每種砝碼的數量

intmain()

dp[0]

=1;for

(int i=

0;i<

6;i++)}

}for

(int i=

1;i<=sum;i++

)printf

("total=%d"

,ans)

;return0;

}

百練 4141 砝碼稱重

總時間限制 1000ms 記憶體限制 65536kb 描述設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 要求 計算用這些砝碼能稱出的不同重量的個數,但不包括乙個砝碼也不用的情況。輸入一行,包括六個正整數a1,a2,a3,a4,a5,a6,表示1g砝碼有a1個,2g砝碼有...

砝碼稱重 DP

砝碼稱重 問題描述 設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 用他們能稱出的重量的種類數。輸入檔案 a1 a2 a3 a4 a5 a6 表示1g砝碼有a1個,2g砝碼有a2個,20g砝碼有a6個,中間有空格 輸出檔案 total n n表示用這些砝碼能稱出的不同重量...

CodeForces 砝碼稱重

1449 砝碼稱重 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 現在有好多種砝碼,他們的重量是 w0,w1,w2,每種各乙個。問用這些砝碼能不能表示乙個重量為m的東西。樣例解釋 可以將重物和3放到乙個托盤中,9和1放到另外乙個托盤中。input 單組測試資料。...