题目链接:

http://codeforces.com/problemset/problem/25/C

题意:

给一个最初的所有点与点之间的最短距离的矩阵。然后向图里加边,原有的边不变,问加边后的各个顶点的距离是多少。

思路:

这个一看就知道是folyd的变种,关键是状态转移怎么处理,具体看代码。

代码:

#include<bits/stdc++.h>
#define LL long long using namespace std;
const int maxn=;
int dist[maxn][maxn];
LL ans;
void modify(int u,int v,int w)
{
if(dist[u][v]>w)
{
ans-=(dist[v][u]-w);
dist[u][v]=w;
}
return;
}
int main()
{
int n;
cin>>n;
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
cin>>dist[i][j];
if(j>i)
{
ans+=dist[i][j];
}
} }
//cout<<ans<<endl;
int k;
cin>>k;
for(int i=;i<=k;i++)
{
int u,v,w;
cin>>u>>v>>w;
modify(u,v,w);
if(dist[u][v]!=dist[v][u])
{
dist[v][u]=dist[u][v];
}
//cout<<ans<<endl;
for(int p=;p<=n;p++)
{
for(int q=;q<=n;q++)
{
modify(p,q,dist[p][u]+dist[v][q]+w);
if(dist[p][q]!=dist[q][p])
{
dist[q][p]=dist[p][u]+dist[v][q]+w;
}
}
}
cout<<ans<<endl;
} return ;
}

最新文章

  1. logistic公式形式的由来,从广义线性回归说起
  2. 转: linux内核版本本地版本号的检查——setlocalversion
  3. https 页面中引入 http 资源的解决方式
  4. ccc 单点触控
  5. js-小效果-瀑布流
  6. SGU 180 Inversions(离散化 + 线段树求逆序对)
  7. Greedy:三角形问题
  8. Java拾穗
  9. 【测试Json的多空格问题】
  10. HTML5学习笔记之Input类型
  11. Python之线程&amp;进程
  12. 【转】Android必备知识点- Android文件(File)操作
  13. 旁路、去耦、Bulk以及耦合电容的作用与区别
  14. [16]Windows内核情景分析 --- 服务管理
  15. 06: linux下python开发环境梳理
  16. C语言 &#183; 分数统计
  17. Git忽略规则及.gitignore规则不生效的解决办法(转)
  18. android monkey app乱点测试
  19. 小记tensorflow-1:tf.nn.conv2d 函数介绍
  20. (WPF)Storyboard

热门文章

  1. 【洛谷p1981】表达式求值
  2. [2019杭电多校第五场][hdu6624]fraction
  3. osi七层协议 Open System Interconnection
  4. k3 cloud支付申请单下推付款单时候提示未将对象引用设置到对象的实例
  5. 剑指offer学习读书笔记--二维数组中的查找
  6. 在Eclipse-jee-neon中配置springsource-tool-suite
  7. 脚本_查找 Linux 系统中的僵尸进程
  8. 【改】utf-8 的去掉BOM的方法
  9. windows下数字以2进制打印
  10. git点滴