QS Network(最小生成树)
题意:若两个QS之间要想连网,除了它们间网线的费用外,两者都要买适配器, 求使所有的QS都能连网的最小费用。
分析:这个除了边的权值外,顶点也有权值,因此要想求最小价值,必须算边及顶点的权值和。
解决方法:用prim算法,在构造邻接矩阵时,在i到j的权值的基础上再加上i点的权值和j点的权值即可。
附上AC代码:
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define infinity 1000000
- #include<iostream>
- #include<algorithm>
- using namespace std;
- int N;
- int G[501][501];
- int QS[1000];
- int lowcost[100000],closeset[100000];
- int used[100000];
- int prim(int vcount)
- {
- int sum=0;
- int i,j,k;
- int min;
- for (i=0; i<vcount; i++)
- {
- lowcost[i]=G[0][i];
- closeset[i]=0;
- used[i]=0;
- }
- used[0]=1;
- for (i=1; i<=vcount-1; i++)
- {
- j=0;
- min = infinity;
- for (k=1; k<vcount; k++)
- if ((!used[k])&&(lowcost[k]<min))
- {
- min =lowcost[k];
- j=k;
- }
- used[j]=1;
- sum+=min;
- for (k=1; k<vcount; k++)
- if (!used[k]&&(G[j][k]<lowcost[k]))
- {
- lowcost[k]=G[j][k];
- closeset[k]=j;
- }
- }
- return sum;
- }
- int main()
- {
- int t,i,j,n,sum;
- scanf("%d",&t);
- while(t--)
- {
- scanf("%d",&n);
- for(i=0;i<n;i++)
- scanf("%d",&QS[i]);
- for(i=0;i<n;i++)
- {
- for(j=0;j<n;j++)
- {
- scanf("%d",&G[i][j]);
- G[i][j]=G[i][j]+QS[i]+QS[j];
- }
- }
- sum=prim(n);
- printf("%d\n",sum);
- }
- return 0;
- }
prim算法详见:http://www.cnblogs.com/PJQOOO/p/3855017.html。我是按照这个学的最小生成树。
————Anonymous.PJQ
QS Network(最小生成树)的更多相关文章
- ZOJ1586——QS Network(最小生成树)
QS Network DescriptionIn the planet w-503 of galaxy cgb, there is a kind of intelligent creature nam ...
- ZOJ1586:QS Network (最小生成树)
QS Network 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1586 Description: In th ...
- ZOJ 1586 QS Network (最小生成树)
QS Network Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Submit Sta ...
- ZOJ 1586 QS Network Kruskal求最小生成树
QS Network Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the ...
- (最小生成树)QS Network -- ZOJ --1586
链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1586 http://acm.hust.edu.cn/vjudge/ ...
- 最小生成树 E - QS Network
Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the planet w-5 ...
- ZOJ1586 QS Network
QS Network Time Limit: 2 Seconds Memory Limit: 65536 KB Sunny Cup 2003 - Preliminary Round Apri ...
- ZOJ 1586 QS Network(Kruskal算法求解MST)
题目: In the planet w-503 of galaxy cgb, there is a kind of intelligent creature named QS. QScommunica ...
- ZOJ1586 QS Network 2017-04-13 11:46 39人阅读 评论(0) 收藏
QS Network Time Limit: 2 Seconds Memory Limit: 65536 KB Sunny Cup 2003 - Preliminary Round Apri ...
随机推荐
- hibernate 一对多映射
package com.entity.onetomany; import java.util.ArrayList; import java.util.List; import javax.persis ...
- javascript获取页面各种高度
网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWi ...
- 【Java Web】使用URLRewrite实现网站伪静态
大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp.*.php页面.但实际上绝大部分网站都是动态的,不可能全部是静态的HTML页面,因此互联网上大部分网站都会考虑伪静态——就是将 ...
- JAVA实现AES的加密和解密算法
原文 JAVA实现AES的加密和解密算法 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import ja ...
- 9天快速入门java
Java入门教程[9天快速入门JAVA] §1.3.简单的Java程序 下面我们先介绍两个简单的Java程序,并对其进行分析. 例1.1. public class HelloWorldApp{//a ...
- 从底层简析Python程序的执行过程
摘要:是否想在Python解释器的内部晃悠一圈?是不是想实现一个Python代码执行的追踪器?没有基础?不要怕,这篇文章让你初窥Python底层的奥妙. [编者按]下面博文将带你创建一个字节码级别的追 ...
- 【FAQ】SpingMVC实现集合參数(Could not instantiate bean class [java.util.List])
需求,要求批量新增或者改动一个List,在Spring MVC中是不支持以下代码的写法 @RequestMapping(value = "/update", method = Re ...
- UVA 10574 - Counting Rectangles(枚举+计数)
10574 - Counting Rectangles 题目链接 题意:给定一些点,求可以成几个边平行于坐标轴的矩形 思路:先把点按x排序,再按y排序.然后用O(n^2)的方法找出每条垂直x轴的边,保 ...
- RHEL Server 6.3下MySQL5.5.25a源码安装
OS:RHEL Server 6.3 MySQL:mysql-5.5.25a.tar.gz 相关依赖包: ncurses-5.9.tar.gz bison-2.5.tar.gz 安装MySQL 一.安 ...
- yii Query Builder (yii 查询构造器) 官方指南翻译
/**** Query Builder translated by php攻城师 http://blog.csdn.net/phpgcs Preparing Query Builder 准备 Quer ...