社区讨论
向大神求助一下 QAQ
P3139[USACO16FEB] Milk Pails S参与者 4已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @mi4eeyux
- 此快照首次捕获于
- 2025/11/18 17:56 4 个月前
- 此快照最后确认于
- 2025/11/18 17:56 4 个月前
T_T 我的程序哪里错了啊 哪位大神帮我看看呗 在下不生感激!!!
CPPvar x,y,k,m,i,j,l,r:longint;
q:array[0..5000000,1..2]of longint;
f:array[0..10000]of boolean;
function min(x,y:longint):longint;
begin
if x<y then exit(x) else exit(y);
end;
begin
read(x,y,k,m);
l:=1;r:=1;
q[1][1]:=0;q[1][2]:=0;
while l<=k+1 do
begin
inc(r);
q[r][1]:=x;q[r][2]:=q[l][2];
f[q[r][1]+q[r][2]]:=true;
inc(r);
q[r][1]:=q[l][1];q[r][2]:=y;
f[q[r][1]+q[r][2]]:=true;
inc(r);
q[r][1]:=0;q[r][2]:=q[l][2];
f[q[r][1]+q[r][2]]:=true;
inc(r);
q[r][1]:=q[l][1];q[r][2]:=0;
f[q[r][1]+q[r][2]]:=true;
inc(r);
q[r][1]:=min(q[l][1]+q[l][2],x);
q[r][2]:=q[l][2]-(q[r][1]-q[l][1]);
f[q[r][1]+q[r][2]]:=true;
inc(r);
q[r][2]:=min(q[l][2]+q[l][1],y);
q[r][1]:=q[l][1]-(q[r][2]-q[l][2]);
inc(l);
end;
for i:=0 to 100 do
begin
if m+i<=100 then
if f[m+i] then begin write(i); exit; end;
if m-i>=0 then
if f[m-i] then begin write(i); exit; end;
end;
end.
回复
共 9 条回复,欢迎继续交流。
正在加载回复...