真是语死早,题目看了两遍才看懂。

  按照题目要求建边,从'Z'开始跑最短路即可。

 

Program CODEVS1079;
var a:array[..,..] of longint;
d:array[..] of longint;
pd:array[..] of boolean;
flag:array[..] of boolean;
b:array[..] of longint;
ch,space,ch2,ans:char;
i,j,m,x,min:longint;
procedure spfa(s:longint);
var i,j,l,r,u,v:longint;
begin
fillchar(pd,sizeof(pd),false);
fillchar(b,sizeof(b),);
fillchar(d,sizeof(d),$7f);
l:=; r:=; pd[s]:=true; b[l]:=s; d[s]:=;
while l<=r do
begin
u:=b[l];
for v:=ord('A') to ord('z') do
if (a[u,v]<) and (d[u]+a[u,v]<d[v]) then
begin
d[v]:=d[u]+a[u,v];
if not pd[v] then
begin
inc(r);
b[r]:=v;
pd[v]:=true;
end;
end;
inc(l);
pd[u]:=false;
end;
end;
begin
fillchar(flag,sizeof(flag),false);
fillchar(a,sizeof(a),$7f);
readln(m);
for i:= to m do
begin
readln(ch,space,ch2,space,x);
if x>a[ord(ch),ord(ch2)] then continue;
a[ord(ch),ord(ch2)]:=x;
a[ord(ch2),ord(ch)]:=x;
flag[ord(ch)]:=true;
flag[ord(ch2)]:=true;
end;
min:=maxlongint;
spfa(ord('Z'));
for i:=ord('A') to ord('Y') do
if flag[i] then
if d[i]<min then
begin
ans:=chr(i);
min:=d[i];
end;
writeln(ans,' ',min);
end.

最新文章

  1. angular + easyui 做界面验证
  2. 2_MVC+EF+Autofac(dbfirst)轻型项目框架_用户权限验证
  3. HDFS的Trash回收站功能
  4. java初探/java读取文件
  5. NSString几个函数
  6. mysql 建立索引场合及索引使用
  7. android 自定义折线图
  8. 【HDOJ】【3709】Balanced Bumber
  9. SQL Server 日期 时间类型
  10. Oracle EBS-SQL (MRP-3):检查例外信息查询_建议取消_采购订单.sql
  11. 如何制作一个类似Tiny Wings的游戏(2) Cocos2d-x 2.1.4
  12. HTML的各种基本标签
  13. Spring基础学习,附例子代码讲解
  14. 全面剖析XMLHttpRequest对象
  15. animator 新动画
  16. 1.gil全局解释器锁, 2. 死锁与递归锁 3. 信号量 4. Event事件 5. 线程queue
  17. SQL基础日期函数
  18. HDU 6199 2017沈阳网络赛 DP
  19. Mounting VMDK files in Linux
  20. 【lightoj-1025】The Specials Menu(区间DP)

热门文章

  1. JSP-Runood:JSP 客户端请求
  2. Coursera Algorithms week4 基础标签表 练习测验:Java autoboxing and equals
  3. js产生随机数教程
  4. codevs1163访问艺术馆(树形dp)
  5. 能力 or say 职业 规划
  6. knockjs
  7. easyui -tree的详细讲解
  8. 【题解】永无乡 [HNOI2012] [BZOJ2733] [P3224]
  9. JavaScript--改变 HTML 样式
  10. Parameter index out of range (1 &gt; number of parameters, which is 0).