usaco 2.3 money--强悍题解2008.6.21
{
这种解法,相当于是暗箱操作,把二维数组压缩成了一位数组,这样不仅可以节约空间,而且可以节约时间,免去了不必要的浪费。就相当于是免去了多次重复求和
}
{
ID:
PROG: money
LANG: PASCAL
}
var n,v,i,j,a:longint;
f:array[0..10000] of int64;
begin
assign(input,'money.in');
assign(output,'money.out');
reset(input);
rewrite(output);
readln(n,v);f[0]:=1;
for i:=1 to n do
begin read(a);{读入币值a,a可以参与比他大的面值的组成}
for j:=a to v do inc(f[j],f[j-a]);
end;
writeln(f[v]);
close(output);
end.
本文介绍了解决USACO 2.3 Money问题的一种高效算法。该方法通过将二维数组压缩为一维数组来减少时间和空间复杂度,避免了重复计算。文章提供了具体的Pascal代码实现。
172

被折叠的 条评论
为什么被折叠?



