ZOJ 1586 : QS Network - prim算法解决最小生成树问题
来源:互联网 发布:创维网络电视机顶盒 编辑:程序博客网 时间:2024/06/07 06:24
分析:
prim算法直接应用
计算建立QS网络的最小费用——最小生成树问题。构造有向网时,每条边权值 = 2个QS的适配器价格 + 这2个QS之间网线的价格。
本题秩序计算最小生成树的权值,不需要记录构造最小生成树时选择的边,故可将lowcost数组和nearvex数组,合二为一。
#include <iostream>#include <stdio.h>#define Max 1000000using namespace std;int edge[1010][1010];int adapter[1010];int lowcost[1010];int t,n;void init(){int i,k,j;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&adapter[i]);for(i=0;i<n;i++)for(j=0;j<n;j++){scanf("%d",&edge[i][j]);if(i==j) edge[i][j]=Max;else edge[i][j]+=adapter[i]+adapter[j];}}void prim(){int sumw=0,i,v,k;lowcost[0]=-1;for(i=1;i<n;i++)lowcost[i]=edge[0][i];for(i=1;i<n;i++){int min=Max;for(k=0;k<n;k++){if(lowcost[k]!=-1&&lowcost[k]<min){v=k;min=lowcost[k];}}sumw+=min;lowcost[v]=-1;for(k=0;k<n;k++){if(lowcost[k]!=-1&&lowcost[k]>edge[k][v])lowcost[k]=edge[k][v];}}printf("%d\n",sumw);}int main(){scanf("%d",&t);while(t--){init();prim();}return 0;}
0 0
- ZOJ 1586 : QS Network - prim算法解决最小生成树问题
- ZOJ 1586 QS Network(最小生成树 prim)
- zoj 1586 QS Network【最小生成树 kruskal && prim】
- ZOJ 1586 QS Network(最小生成树 Prim)
- zoj 1586 QS Network 最小生成树
- 【最小生成树】QS Network ZOJ 1586
- ZOJ 1586 QS Network 最小生成树
- zoj 1586 QS Network(最小生成树)
- QS Network 【zoj-1586】【最小生成树】
- ZOJ 1586 QS Network(最小生成树)
- ZOJ-1586 QS Network (最小生成树)
- zoj QS 1586 Network (prim算法)
- ZOJ 1586 QS Network 最小生成树水题
- ZOJ QS Network(最小生成树)
- zoj 1586 QS Network (最小生成树)
- ZOJ - 1586 QS Network (最小生成树 Kruskal)
- zoj 1586 QS Network(最小生成树))
- ZOJ 1586 QS Network(最小生成树--prime)
- POJ 1465/ ZOJ 1136 : Multiple - BFS,余数判重
- [转] memset用法
- POJ 1523 / ZOJ 1119 - Tarjan算法
- POJ 1144 / ZOJ 1311 : Network - 割点个数
- 初学JQuery的DOM操作
- ZOJ 1586 : QS Network - prim算法解决最小生成树问题
- ZOJ 2588 : Burning Bridges - 无向图求割边(裸)
- POJ 1419 : Graph Coloring - 最大团(裸)
- POJ 2800 : Joseph\'s Problem (须仔细分析)
- POJ 2680 / ZOJ 2584 : Computer Transformation - 打表+找规律+高精度 / java大数
- POJ 2818 : Making Change - dfs
- POJ 2796 : Feel Good - 区间运算最值
- POJ 2973 : Scrabble - 字符串
- POJ 2756 : Autumn is a Genius - java大数