社区讨论
求大神指教
P1731[NOI1999] 生日蛋糕参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi4eg4fw
- 此快照首次捕获于
- 2025/11/18 17:57 4 个月前
- 此快照最后确认于
- 2025/11/18 17:57 4 个月前
CPP
var
n,m,q,l,s:longint;
r,h,max1,max2:array[1..20] of longint;
procedure dfs(k:longint);
var
i,j:longint;
begin
if (k>m) and (l=0) then begin
s:=s+sqr(r[1]);
if s<q then q:=s;
exit
CPP end;
for i:=max1[k]-1 downto 1 do begin
max2[1]:=trunc(sqrt(n));
for j:=max2[k]-1 downto 1 do begin
max1[k]:=i;
max2[k]:=j;
r[k]:=i;
h[k]:=j;
l:=l-sqr(r[k])*h[k];
s:=s+2*r[k]*h[k];
dfs(k+1);
s:=s-2*r[k]*h[k];
l:=l+sqr(r[k])*h[k];
end;
end;
end;
begin
//assign(input,'birth.in');reset(input);
//assign(output,'birth.out');rewrite(output);
readln(n);
readln(m);
q:=maxlongint;
max1[1]:=trunc(sqrt(n));
max2[1]:=trunc(sqrt(n));
l:=n;
dfs(1);
write(q);
close(input);close(output);
end.
回复
共 4 条回复,欢迎继续交流。
正在加载回复...