總時間限制: 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 單組測試資料。...