思路:首先使用二维数组dis[][]处理输入, 对于已经修好的路,将其对应的dis[i][j]置为零即可。最后再将

      所有的dis[][]保存到边结构体中,使用Kruskal算法求得最小生成树。

 #include<iostream>
#include<vector>
#include<string>
#include<cmath>
#include<set>
#include<algorithm>
#include<cstdio>
#include<map>
#include<cstring> using namespace std; int dis[][];
struct Edge
{
int a, b;
int cost;
}edge[]; int Tree[]; int findRoot(int x)
{
if(Tree[x] == -)
return x;
int tmp = findRoot(Tree[x]);
Tree[x] = tmp;
return tmp;
} bool cmp(Edge e1, Edge e2)
{
return e1.cost < e2.cost;
} int main()
{
int n;
scanf("%d", &n);
for(int i = ; i <= n; ++i)
Tree[i] = -; for(int i = ; i <= n; ++i)
for(int j = ; j <= n; ++j)
scanf("%d", &dis[i][j]); int q;
scanf("%d", &q);
for(int i = ; i <= q; ++i)
{
int a, b;
scanf("%d %d", &a, &b);
dis[a][b] = ;
} int k = ;
for(int i = ; i <= n; ++i)
for(int j = ; j <= n; ++j)
{
if(i != j && i < j) // 注意同一条边不要重复保存!
{
edge[k].a = i;
edge[k].b = j;
edge[k].cost = dis[i][j];
++k;
}
}
sort(edge+, edge+k, cmp);
int ans = ;
for(int i = ; i < k; ++i)
{
int ra = findRoot(edge[i].a);
int rb = findRoot(edge[i].b);
if(ra != rb)
{
Tree[ra] = rb;
ans += edge[i].cost;
}
} printf("%d\n", ans); return ;
}

最新文章

  1. 【异常】No ManagedConnections available within configured blocking timeout
  2. MVC部分视图含义
  3. linux c学习笔记08--文件操作
  4. hdu4588Count The Carries
  5. android面试题之二
  6. PL SQLDEVELOPMENT导出数据库脚本
  7. 编译期类型检查 in ClojureScript
  8. Python学习——列表
  9. [模板] tarjan/联通分量/dfs树
  10. c#提交事务的两种方法
  11. Nginx模块 ngx_http_limit_req_module 限制请求速率
  12. Finance公式说明
  13. HBase源码分析之WAL
  14. Light Probe Proxy Volume
  15. 常用数据库驱动名称以及URL
  16. 微信Access Token 缓存方法
  17. Win10 我的电脑 -- 右键点击管理打不开
  18. (九) 使用Jmeter 做分布式压测 ;
  19. 817E. Choosing The Commander trie字典树
  20. js 实现图片的无缝滚动

热门文章

  1. Excel skill: 如何替换换行符,以及如何把一格转换成多行/多列
  2. duilib教程之duilib入门简明教程5.自绘标题栏
  3. 关于SqlServer的内连接,外链接以及left join,right join之间的一些问题与区别。
  4. 实例测试java的Integer转String的效率问题1.8
  5. MathType插件安装
  6. 2019-5-21-C#-在-构造函数添加-CallerMemberName-会怎样
  7. 7.Spring切入点的表达式和通知类型
  8. Vue实例属性/方法/生命周期
  9. IT外包概要
  10. 关于mybatis-config.xml文件的基础解释