p1179.pas.bak
来自「www.vijos.cn上一些习题的参考源码」· BAK 代码 · 共 56 行
BAK
56 行
program p1179;
var
b:array[1..5000] of longint;
a,ans:array[1..10] of longint;
i,max,n,k:longint;
function dp(dep:longint):longint;
var
x,i,min:longint;
begin
fillchar(b,sizeof(b),120);
b[1]:=1;
x:=0;
repeat
inc(x);
min:=maxint;
for i:=1 to dep do
if (b[x-a[i]]<min) and (x>a[i]) then
min:=b[x-a[i]];
b[x]:=min+1;
until b[x]>n;
dp:=x-1;
end;
procedure search(d,j:longint);
var
i:longint;
t:longint;
begin
t:=dp(d);
if d=k then begin
if t>=max then begin
max:=t;
ans:=a;
end;
exit;
end;
inc(d);
a[d]:=j;
for i:=j+1 to dp(d)+1 do
search(d,i);
end;
begin
readln(n,k);
fillchar(a,sizeof(a),0);
fillchar(ans,sizeof(ans),0);
b[1]:=1;
max:=0;
search(0,1);
for i:=1 to k do write(ans[i],' ');
writeln('MAX=',max);
readln;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?