[Prim] POJ 1287

来源:互联网 发布:最大的整型数据 编辑:程序博客网 时间:2024/05/17 04:49

题意:

应该就是装宽带网络,给定节点和有权值的边的数目,问最小的成本是多少。

思路:

Prim模板,第一次


#include <algorithm>#include <cstdio>#include <cstring>#define N 55#define INF 0x7f7f7f7fusing namespace std;int n, m;int edg[ N ][ N ];int dis[ N ];bool vis[ N ];void Prim () {    int ans = 0;    // INIt    memset ( vis, false, sizeof ( vis ) );    vis[ 1 ] = true;    for ( int i = 1; i <= n; ++i ) {        dis[ i ] = edg[ 1 ][ i ];    }    // u = Extract MIN    for ( int i = 1; i <= n; ++i ) {        int x = -1, mi = INF;        for ( int j = 1; j <= n; ++j )            if ( !vis[ j ] && dis[ j ] < mi )                mi = dis[ x = j ];        if ( x == -1 )            break;        //出列后标记        vis[ x ] = true;        ans += mi;        // for each v in G.adj[u]        for ( int j = 1; j <= n; ++j )            // if v in Q and w(u,v) < v.key            // 和dijkstra不一样的地方            if ( !vis[ j ] && dis[ j ] > edg[ x ][ j ] )                dis[ j ] = edg[ x ][ j ];    }    printf ( "%d\n", ans );}int main () {    while ( ~scanf ( "%d", &n ) && n ) {        scanf ( "%d", &m );        if ( !m ) {            printf ( "0\n" );            continue;        }        for ( int i = 1; i <= n; ++i )            for ( int j = 1; j <= n; ++j ) {                if ( i == j )                    edg[ i ][ j ] = 0;                else                    edg[ i ][ j ] = INF;            }        for ( int i = 1; i <= m; ++i ) {            int u, v, w;            scanf ( "%d%d%d", &u, &v, &w );            if ( w < edg[ u ][ v ] )                edg[ u ][ v ] = edg[ v ][ u ] = w;        }        Prim ();    }    return 0;}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 流瑜伽好处 流瑜伽呼吸 流瑜伽 体式 流璃美人煞 硫璃瓦多少钱一平方 东风电动物流车6万元 手机流畅度排名 上海流畅度护肤品 2018安卓系统流畅度排名 糟糠之妻做皇后 承流 眼晴流眼泪是什么原因 马眼流脓怎么回事 眼晴老是流眼泪是什么原因 嘴歪眼斜流口水 流眼泪的图片 眼睛总是流眼泪怎么回事 流眼泪图片 感冒流眼泪怎么回事 有许多时候眼泪就要流 情歌流眼泪 眼睛老流眼泪怎么回事 眼睛疼流眼泪 婴儿流眼泪 宝宝流眼泪怎么回事 睡觉流眼泪 快速流眼泪摁穴位 鼻子酸流眼泪 宝宝眼睛流眼泪 眼睛痛流眼泪 眼泪不再为你而流 眼泪为你流 经常流眼泪 怎样10秒快速流眼泪 为什么感冒会流眼泪 如何训练自己不流眼泪 猫一只眼睛半睁着流眼泪 斗破之系统轮回眼泪流下来 离岛之歌 离岛 三亚离岛免税店 香港离岛