SSL 1072 砝碼稱重

2021-07-30 23:00:46 字數 1147 閱讀 8870

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 單組測試資料。...