hdu 1102 Constructing Roads(图论:最小生成树)
2014-07-21 15:23
232 查看
又是最小生成树...
再这样刷下去都觉得自己无耻了,一会看看别的算法...
代码如下:
再这样刷下去都觉得自己无耻了,一会看看别的算法...
代码如下:
#include <cstdio> #include <iostream> #include <algorithm> #define MAXN 10010 #define LL long long #define INF 0x7fffffff using namespace std; int n; int dis[MAXN], g[MAXN][MAXN]; LL prim() { LL ans; int now, i, j; int minnode, minedge; for(i=1; i<=n; ++i) dis[i] = INF; now = 1; ans = 0; for(i=1; i<n; ++i) { dis[now] = -1; minedge = INF; for(j=1; j<=n; ++j) { if(now!=j && dis[j]>=0) { dis[j] = min(dis[j], g[now][j]); if(dis[j] < minedge) { minedge = dis[j]; minnode = j; } } } now = minnode; ans += minedge; } return ans; } int main(void) { int i, j, q, a, b, dis; while(scanf("%d", &n) != EOF) { for(i=1; i<=n; ++i) { for(j=1; j<=n; ++j) { scanf("%d", &dis); g[i][j] = dis; } } scanf("%d", &q); while(q--) { scanf("%d%d", &a, &b); g[a][b] = g[b][a] = 0; } cout << prim() << endl; } return 0; }
相关文章推荐
- HDU-1102(prim求最小生成树)
- hdu1102 hdu1233 hdu4081 hdu4126 最小生成树
- (step6.1.4)hdu 1102(Constructing Roads——最小生成树)
- hdu-1102 Constructing Roads(prim最小生成树)
- HDU 1102(最小生成树)
- HDU 1102 Constructing Roads (Kruscal最小生成树)
- HDU 1102 最小生成树
- hdu 1102(最小生成树)
- hdu1102 Constructing Roads (最小生成树 prim 算法)
- hdu 1102 最小生成树 prim算法+Kruskal算法(并查集)
- HDU1102 prim 最小生成树
- hdu 1102 -Constructing Roads(最小生成树)
- hdu_1102_Constructing Roads(最小生成樹)
- hdu 1102 最小生成树
- HDU 1102 最小生成树 prim
- HDU1102 prim 最小生成树
- HDU 1102(最小生成树)
- hdu 1102 (最小生成树)
- hdu 1102 (最小生成树)
- hdu 1102 (最小生成树kruskal算法--并查集,prim死活过不了)