poj 1258 最小代价网络
2012-10-31 16:55
253 查看
基本prim算法
#include <iostream> #include <sstream> #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <vector> #include <set> #include <cctype> #include <algorithm> #include <cmath> #include <deque> #include <queue> #include <map> #include <queue> #include <list> #include <iomanip> using namespace std; /// /// const int INF = 20000000; #define maxn 110 #define max(a,b)(a>b?a:b) /// int N; //农场数目 int cost[maxn][maxn]; int lowc[maxn]; bool vis[maxn]; int prim() { int i, j; int p = -1; int minc, res = 0; memset(vis, false, sizeof(vis)); vis[1] = true; for (i = 2; i <= N; i++) lowc[i] = cost[1][i]; for (i = 2; i <= N; i++) { minc = INF; p = -1; for (j = 1; j <= N; j++) { if (0 == vis[j] && lowc[j] < minc) { minc = lowc[j]; p = j; } } res += minc; vis[p] = 1; for (j = 1; j <= N; j++) { if (0 == vis[j] && lowc[j] > cost[p][j]) lowc[j] = cost[p][j]; } } return res; } int main() { /// int i, j; while(scanf("%d", &N) != EOF) { for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { scanf("%d", &cost[i][j]); } } int ans = prim(); printf("%d\n", ans); } /// return 0; }
相关文章推荐
- POJ 1258:Agri-Net Prim最小生成树模板题
- poj-1258(Agri-Net)【图的最小生成树】
- POJ 1258 - Agri-Net(最小生成树 Prim)
- POJ 1258:Agri-Net(最小生成树&&prim)
- 【求最小代价环floyd】POJ 1734
- POJ 1258--Agri-Net【最小生成树 && Kruskal && 水题】
- poj 1258 Agri-Net 最小生成树
- POJ 1258-Agri-Net(最小生成树prim)
- POJ-1258--Agri-Net (最小生成树 Prime)
- 各种最小生成树。 HDU 1863 HDU 1301 POJ 1258
- POJ 1258 Agri-Net 【最小生成树入门题目】
- POJ 1258 Agri-Net(最小生成树)
- POJ 1258 Agri-Net最小生成树 prim
- poj 1258 最小生成树(普里姆算法)
- poj 1258 最小生成树 prim
- 文章标题 POJ 1258 : Agri-Net(最小生成树--kruskal)
- poj 1258 【最小生成树】【prim】【纯模板】
- POJ 1258 Agri-Net(最小生成树)
- 【最小生成树】(模板-prim算法)poj 1258
- poj 1258 Agri-Net(prim求最小生成树)