题目网址:http://codevs.cn/problem/2011/

题目大意:有一个图,每次删一条边(可以重复删),求每次删边之后所有点对的最短距离之和。

  看了一眼题目,顿时发现了O(n^4)的暴力解法:每次删边之后跑一次Floyd,然后又看了一眼数据范围,发现n,m<=200……华丽丽的TLE……

  删边……好像不可做……但是如果是加边就好办了。看看能不能把删边转化成加边,于是……正解思路闪现了。

  其实这道题的思路就是把要删掉的边全部先删掉,跑一次Floyd,然后倒着加边,用加上的边更新最短路(设加上的边起点为x,终点为y,看i->x->y->j是否比直接i->j花费更小),就能在O(n^3)的时间内求出答案。

  代码:

var a:array[..,..]of longint;
x,y,z,ans:array[..]of longint;
n,m,i,j,k:longint;
b:boolean;
begin
read(n);
for i:= to n do
for j:= to n do
read(a[i,j]);//读入图
read(m);
for i:= to m do begin
read(x[i],y[i]); z[i]:=a[x[i],y[i]];
a[x[i],y[i]]:=<<;//删边
end;
for k:= to n do
for i:= to n do
for j:= to n do
if a[i,j]>a[i,k]+a[k,j] then a[i,j]:=a[i,k]+a[k,j];//跑Floyd
for i:=m downto do begin
ans[i]:=; b:=false;
for j:= to n do begin
for k:= to n do begin
if a[j,k]>=<< then begin
ans[i]:=-; b:=true; break;
end;
ans[i]:=ans[i]+a[j,k];
end;
if b then break;
end;//算距离之和
for j:= to n do
for k:= to n do
if a[j,k]>a[j,x[i]]+z[i]+a[y[i],k] then a[j,k]:=a[j,x[i]]+z[i]+a[y[i],k];//加边,更新答案
end;
for i:= to m do
if ans[i]=- then writeln('INF')
else writeln(ans[i]);//输出答案
end.

注:更新答案时不能用删掉的边直接覆盖掉原边,因为覆盖掉的花费可能更短。

最新文章

  1. 10月27日PHP加载类、设计模式(单例模式和工厂模式)、面向对象的六大原则
  2. Linq 备忘录
  3. 【Mail】搭建邮件服务器(LAMP+Postfix+Dovcot+PostfixAdmin+Roundcubemail)
  4. MVC5 + EF6 + Bootstrap3 (15) 应用ModelState和Data Annotation做服务器端数据验证
  5. 使用.net Stopwatch class 来分析你的代码
  6. RPG的错排
  7. 10个常见的IE bug和解决方法
  8. 怎样在Swift中使用CocoaPods-b
  9. ASP.NET 母版页和内容页的加载顺序
  10. javascript学习记录-2-18
  11. win10下运行cmd闪退时检查方法
  12. 屏蔽右键+f12
  13. python对象的不同参数集合
  14. AI Accord.NET入门
  15. python获取文件扩展名的方法(转)
  16. 双数组Trie的一种实现
  17. go test 单元函数测试
  18. Quartz.NET——作业调度组件
  19. PHP调用wsdl接口实例化SoapClient抛出异常
  20. IO流之IO的异常处理

热门文章

  1. tomcat启动不起来,不知原因,没有报错日志,控制台一闪而过 怎么办
  2. Log4j 使用
  3. iptables 概念 1
  4. 如何理解docker镜像build中的上下文
  5. 巨蟒django之CRM5 学习记录&amp;&amp;课程记录&amp;&amp;班级管理&amp;&amp;私户的数量上限
  6. redis 集群安装 3主3从3台云主机
  7. 【转】Linux系统上安装MySQL 5.5 rpm
  8. jquery.fileDownload plugin: Success msg alert before actual pdf download completed
  9. 洛谷 P4171 [JSOI]满汉全席
  10. Linux考试题附答案