📄 p1179.pas
字号:
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:longint;
begin
fillchar(b,sizeof(b),120);
x:=0;
repeat
inc(x);
for i:=1 to dep do
if(x>=a[i]) then
if(b[x-a[i]+1]<b[x]) then b[x]:=b[x-a[i]]+1;
until b[x]>n;
dp:=x-1;
end;
procedure search(d,j:longint);
var
i:longint;
begin
if d=k then begin
if dp(d)>=max then begin
max:=dp(d);
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -