RT
count 表示 第i种面额在f[j] 放的数量
Program P1276;
const
maxn=20;
maxcash=1000000;
var
cash,n,i,j:longint;
cost,d:array[1..maxn] of longint;
f,count:array[0..maxcash] of longint;
begin
while not seekeof do
begin
read(cash,n);
for i:=1 to n do read(d[i],cost[i]);
fillchar(f,sizeof(f),0);
for i:=1 to n do
begin
fillchar(count,sizeof(count),0);
for j:=cost[i] to cash do
begin
if (f[j]<f[j-cost[i]]+cost[i]) and (count[j-cost[i]]<d[i]) then
begin
f[j]:=f[j-cost[i]]+cost[i];
count[j]:=count[j-cost[i]]+1;
end;
end;
end;
writeln(f[cash]);
end;
end.
本文深入探讨了程序开发中的关键技术领域,包括算法、数据结构、版本控制、测试方法等,旨在帮助开发者提升编程能力与效率。从基础的排序算法到复杂的深度学习应用,文章覆盖了多个层次的技术知识。
938

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



