社区讨论
40分,求大佬指点
P2176[USACO11DEC] RoadBlock S / [USACO14FEB] Roadblock G/S参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi86lgr4
- 此快照首次捕获于
- 2025/11/21 09:28 4 个月前
- 此快照最后确认于
- 2025/11/21 09:28 4 个月前
Pascal 40分,求大佬指点
CPPvar n,m,i,sum,cnt,max,min:longint;
a,b,c,d,x,y,z,f,f1:array[0..100000] of longint;
procedure add(x,y,z:longint);
begin
cnt:=cnt+1;a[cnt]:=y;b[cnt]:=d[x];d[x]:=cnt;c[cnt]:=z;
end;
procedure spfa;
var i,t,w,j:longint;
begin
fillchar(f,sizeof(f),63);f[1]:=0;f1[1]:=1;t:=1;w:=1;
while t<=w do
begin
j:=d[f1[t]];
while j>0 do
begin
if f[a[j]]>f[f1[t]]+c[j] then
begin
f[a[j]]:=f[f1[t]]+c[j];
w:=w+1;
f1[w]:=a[j];
end;
j:=b[j];
end;
t:=t+1;
end;
end;
begin
readln(n,m);
for i:=1 to m do
begin
readln(x[i],y[i],z[i]);
add(x[i],y[i],z[i]);add(y[i],x[i],z[i]);
end;
spfa;max:=f[n];
for i:=1 to n do
begin
c[2*i-1]:=c[2*i-1]*2;c[2*i]:=c[2*i]*2;
spfa;if f[n]>sum then sum:=f[n];
c[2*i-1]:=c[2*i-1] div 2;c[2*i]:=c[2*i] div 2;
end;
writeln(sum-max);
close(input);close(output);
end.
回复
共 1 条回复,欢迎继续交流。
正在加载回复...