社区讨论
求大佬帮看下代码...实在不知哪错了!!!!!!!!!!
P1078[NOIP 2012 普及组] 文化之旅(疑似错题)参与者 4已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi6vtn2n
- 此快照首次捕获于
- 2025/11/20 11:39 4 个月前
- 此快照最后确认于
- 2025/11/20 11:39 4 个月前
var i,j,n,m,k,o,s,a1,a2,a3,a4,a5,x,y,max:longint;
a:array[1..100,1..100] of longint;
b,d:array[1..100] of longint;
c:array[1..100,1..100] of boolean;
e:array[1..100] of boolean;
procedure aaa(k,s:longint);
var i,j:longint;
u:boolean;
begin
if s>max then exit;
if k=y then begin if s<max then max:=s;exit;end;
for i:=1 to n do
if (not(e[i]))and(i<>k)and(a[k,i]<>0) then
begin
u:=true;
for j:=1 to o do
if (c[i,d[j]])or(d[j]=b[i]) then begin u:=false;break;end;
if u then
begin
inc(o);
d[o]:=b[i];
e[i]:=true;
aaa(i,s+a[k,i]);
e[i]:=false;
dec(o);
end;
end;
end;
begin
readln(n,m,a1,x,y);
if x=y then begin write(0);exit;end;
for i:=1 to n do
read(b[i]);
readln;
for i:=1 to m do
begin
for j:=1 to m do
begin
read(o);
if o=1 then c[i,j]:=true;
end;
readln;
end;
for i:=1 to a1 do
begin
readln(a2,a3,a4);
if (a[a2,a3]=0)or(a[a2,a3]>a4) then a[a2,a3]:=a4;
if (a[a3,a2]=0)or(a[a3,a2]>a4) then a[a3,a2]:=a4;
end;
max:=maxlongint;
e[x]:=true;
o:=1;
d[1]:=b[x];
aaa(x,0);
if max=maxlongint then write(-1) else write(max);
end.
回复
共 3 条回复,欢迎继续交流。
正在加载回复...