社区讨论

求大佬帮看下代码...实在不知哪错了!!!!!!!!!!

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 条回复,欢迎继续交流。

正在加载回复...