description
設有1g、2g、3g、5g、10g、20g的砝碼各若干枚(其總重<=1000),
要求:
輸入方式:a1 a2 a3 a4 a5 a6
(表示1g砝碼有a1個,2g砝碼有a2個,…,20g砝碼有a6個)
輸出方式:n
(n表示用這些砝碼能稱出的不同重量的個數,但不包括乙個砝碼也不用的情況)
input
output
sample input
1 1 0 0 0 0
(注:下劃線表示空格)
sample output
3 表示可以稱出1g,2g,3g三種不同的重量。
最大只能為1000,
狀態轉移方程: f[j]:=max(f[j-k*v[i]]+k*v[i],f[j]);
1<=i<=6
1<=j<=1000
1<=k<=a[i]
**如下:
const v:array[1..6] of longint=(1,2,3,5,10,20);
var f,a:array[0..1000] of longint;
w:array[0..1000] of boolean;
i,j,k,n,total:longint;
function
max(a,b:longint):longint;
begin
if a>b then
exit(a) else
exit(b);
end;
begin
for i:=1to6
doread(a[i]);
for i:=1to6
dofor j:=1000
downto1do
for k:=1
to a[i] do
if j>=v[i]*k then
begin f[j]:=max(f[j-k*v[i]]+k*v[i],f[j]); w[f[j]]:=true; end;
for i:=1
to1000
doif w[i] then inc(total);
writeln(total);
end.
SSL 1072 P2347 砝碼稱重
設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 要求 輸入方式 a1 a2 a3 a4 a5 a6 表示1g砝碼有a1個,2g砝碼有a2個,20g砝碼有a6個 輸出方式 n n表示用這些砝碼能稱出的不同重量的個數,但不包括乙個砝碼也不用的情況 1 1 0 0 0 0 注 ...
砝碼稱重 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 單組測試資料。...