POJ 1258 Agri-Net(最小生成树-Prim)
来源:互联网 发布:centos git ssh配置 编辑:程序博客网 时间:2024/06/05 04:06
Description
有n个农场,已知这n个农场都互相相通,有一定的距离,现在每个农场需要装光纤,问怎么安装光纤能将所有农场都连通起来,并且要使光纤距离最小,输出安装光纤的总距离
Input
第一行一个整数n表示农场个数(3<=n<=100),然后是n个农场的距离矩阵
Output
输出安装光纤的最小总距离
Sample Input
4
0 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0
Sample Output
28
Solution
最小生成树,因为给出了一个二维矩阵代表他们的距离,直接套一个prim模板就行了
Code
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>using namespace std;const int maxn = 150, INF = 0x3f3f3f3f;int cost[maxn][maxn], minicost[maxn];int M;bool used[maxn];void init(){ for (int i = 1; i <= M; i++) used[i] = false;}int prim(){ for (int i = 1; i <= M; i++) minicost[i] = cost[1][i]; used[1] = true; int ans = 0; for (int i = 2; i <= M; i++) { int index = -1; int minic = INF; for (int j = 1; j <= M; j++) if (!used[j] && minicost[j] < minic) index = j, minic = minicost[j]; if (index == -1) return 0; used[index] = true; ans += minic; for (int k = 1; k <= M; k++) if (!used[k]) minicost[k] = min(minicost[k], cost[index][k]); } return ans;}int main(){ // freopen("in.txt", "r", stdin); while (~scanf("%d", &M) && M) { init(); for (int i = 1; i <= M; i++) for (int j = 1; j <= M; j++) scanf("%d", &cost[i][j]); int ans = prim(); if (ans != 0) printf("%d\n", ans); } return 0;}
阅读全文
0 0
- POJ 1258:Agri-Net(最小生成树&&prim)
- POJ 1258-Agri-Net(最小生成树prim)
- poj 1258 Agri-Net (最小生成树 prim)
- poj-1258 Agri-Net(最小生成树 Prim算法)
- POJ 1258 Agri-Net(最小生成树-Prim)
- poj 1258 Agri-Net(prim求最小生成树)
- POJ-1258 Agri-Net(最小生成树[Prim])
- POJ 1258 Agri-Net (最小生成树/Prim)
- POJ 1258 Agri-Net (最小生成树 prim)
- POJ 1258 Agri-Net(最小生成树-Prim)
- POJ 1258-Agri Net 最小生成树Prim算法
- poj 1258Agri-Net-最小生成树prim
- Poj 1258 Agri-Net (最小生成树Prim & Kruskal)
- POJ 1258 Agri-Net 图论 prim算法 最小生成树
- POJ 1258 Agri-Net 最小生成树 Prim
- poj 1258 Agri-Net(prim求最小生成树)
- POJ 1258 Agri-Net(最小生成树prim算法)
- 【最小生成树之prim算法】POJ-1258---Agri-Net
- New Year and Days
- python基础第二篇
- Android插件化与其构建流程
- SQL-SERVER2008 存储过程-子过程回滚
- MySql错误:[Err] 1292
- POJ 1258 Agri-Net(最小生成树-Prim)
- 15入门阶段综合练习
- 【HDU】6048
- 让你用一次就会爱上的 5 个 web 工具类产品
- How can I autologin to desktop with systemd?
- QT-输入框右键菜单翻译文件安装
- POJ 1915:Knight Moves(BFS)
- 跨过程序设计门槛之厘清计算机系统
- bugku 变量1