题意:给你n个点  然后给你n个值  分别是每个点建立一条边的初始花费  然后再给你n*n 的矩阵 分别是点距 求最短路

解题思路:把两个点建立的一条边的初始花费也算入到这条边的权值中,从而利用Kruskal 算法排序然后求最下生成树

解题代码:

ZOJ 1914

// File Name: g.cpp
// Author: darkdream
// Created Time: 2013年04月25日 星期四 01时11分49秒

#include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime>
int p[1000];
int c[1000];
int w[1000005];
int v[1000005];
int u[1000005];
int r[1000005];
int d[1005][1005];
using namespace std;int find(int x)
{return p[x] == x? x:p[x] = find(p[x]);
}
int cmp(const int i , const int j)
{return w[i] < w[j];
}
int main(){int t;scanf("%d",&t);while(t--){int n ;scanf("%d",&n);for(int i =1;i <= n;i ++)scanf("%d",&c[i]);for(int i =1 ;i <= n;i ++)for(int j =1;j <= n; j ++){scanf("%d",&d[i][j]);}int m = 0;for(int i = 2;i <= n; i ++)for(int j =1 ; j< i;j ++){v[++m] =i ;u[m] = j;w[m] = c[i] +c[j] + d[i][j];}for(int i = 1;i <= n;i ++)p[i] = i;for(int i = 1 ;i <= m; i ++)r[i] = i;sort(r+1,r+m+1,cmp);int ans = 0;for(int i =1;i <= m; i ++){int e = r[i];int x = find(v[e]);int y = find(u[e]);if(x != y){ans += w[e];p[x] = y;}}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/zyue/archive/2013/04/25/3042335.html

ZOJ 1914 Arctic Network相关推荐

  1. kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题)

    kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题) 总题单 week 3 [kuangbin带你飞] 题单 最小生成树 + 线段树 Cli ...

  2. Arctic Network题解+(最小生成树二次理解 )

    由于在上一篇文章用了大量的文字已经对于最小生成树的两种算法(克鲁斯卡尔和普利姆算法)做了基础的讲解,下面的话我就大概说一下思想和解题步骤,然后再在附加上一个昨天做题(虽然说很基础但是对于初学的我就有点 ...

  3. ZOJ 1586 QS Network

    题目链接 QS Network Time Limit: 2 Seconds      Memory Limit: 65536 KB Sunny Cup 2003 - Preliminary Round ...

  4. 【POJ - 2349】【UVA - 10369】 Arctic Network(最小生成树求权值第k大的边)(内附两种算法)

    题干: The Department of National Defence (DND) wishes to connect several northern outposts by a wirele ...

  5. poj2349:Arctic Network(最小生成树)

    总时间限制:  2000ms  内存限制:  65536kB 描述 The Department of National Defence (DND) wishes to connect several ...

  6. UVA10369 Arctic Network

    传送门 求一棵最小生成树,要求:忽略树上s-1条边的边权后,最大的边最小. (因为卫星频道是两两互达的,所以想把连接两个联通块之间的边权忽略必须用两个联通块都放置卫星频道.也就是至少要两个) emmm ...

  7. vaOJ10369 - Arctic Network

    1 /* 2 The first line of each test case contains 1 <= S <= 100, the number of satellite channe ...

  8. UvaOJ10369 - Arctic Network

    1 /* 2 The first line of each test case contains 1 <= S <= 100, the number of satellite channe ...

  9. Arctic Network UVA - 10369 (最小生成树,适合prim)

    给出n个点将他们连成最小生成树,给出k个卫星,有了这些卫星就可以无代价地连接一些边.求出在此条件下的最长的边 也就是求出最小生成树的第k小条边 考虑到这个图的边比较多,选择使用prim算法,需要注意的 ...

  10. POJ 2349 Arctic Network (MST中的第K长路)

    题目: http://poj.org/problem?id=2349 1)关于题意,开始code完了,才发现,样例都解释不过去,题意理解错误,最后才明白是求MST种的长度排序后的第K长的权值,这个题意 ...

最新文章

  1. python导入外部包_您会喜欢的10个外部Python软件包
  2. 北大博士干了半年外卖骑手,写出 AI 伦理论文登上顶刊,“系统知道一切”
  3. C#操作Excel(NPOI)
  4. rosserial_java_编写ros串口节点,使用官方serial包(示例代码)
  5. 部署Apache服务器
  6. matlab 色彩模型,常见色彩模型的相互转换(基于MATLAB).doc
  7. rhel 8.2不识别unicode_基于tensorflow 实现端到端的OCR:二代身份证号识别
  8. linux服务器cc防御,Linux下简单的防止CC攻击
  9. SSM中PageHelper的使用步骤与com.github.pagehelper.PageHelper3系列与5系列的区别
  10. PHP怎么抛出错误,php – 从“正确”来源抛出错误
  11. Reactor网络编程模型
  12. DNF包管理命令在CentOS 8和RHEL 8上的使用
  13. dubbo服务化最佳实践
  14. iOS 内存管理arc
  15. 训练集与测试集分布差距
  16. 服务器防止ce修改器,原神CE修改器防封版
  17. android 实现层叠列表,RecyclerView进阶之层叠列表(下)
  18. 教你如何用python轻轻松松解析XML和PDF,一文就够了,赶紧码住!!!
  19. ctfshow 菜狗杯 化零为整 wp
  20. 在触屏设备上面利用html5裁剪图片(转)

热门文章

  1. 播放视频时有残影、水纹的原因
  2. 由数据范围反推算法复杂度
  3. 未定义数组索引:_数据结构-数组
  4. 自定义条件查询_跟我学shardingjdbc之自定义分库分表策略-复合分片算法自定义实现...
  5. html 源码_(带手机版数据同步)中国风古典园林石业织梦模板 水墨风格园林艺术网站源码下载...
  6. matlab simulink 过程控制,[转载]MATLAB/Simulink与过程控制系统
  7. shell表达语句中,各种符号的释义 用法
  8. plsql oracle client没有正确安装(plsql连接远程数据库)
  9. 以线虫为模型模拟的神经网络,让机器人无需训练即可自动避开障碍物
  10. 微信工程师为你讲述春晚红包的系统设计和优化