zoukankan      html  css  js  c++  java
  • 图算法-Prime

    主要思想:利用了贪心属性,它有最优子结构,即它的导出子图也是最小生成树。

    #include <iostream>
    using namespace std;
    
    const int nmax= 100;
    int e[nmax][nmax];
    const int inf = 1 << 20;
    
    int MST_Prime(int e[][nmax], int n) {
        int book[nmax], dis[nmax],sum=0;
    
        memset(book, 0, sizeof(book));
        for (int i = 1; i <= n; i++)
            dis[i] = inf;
        
        int flag = 1;
        dis[flag] = 0;
        book[flag] = 1;
        int t = n-1;
        while (t--) {
            for (int i = 1; i <= n; i++)
                if (book[i] == 0 && e[flag][i] < dis[i])
                    dis[i] = e[flag][i];
                    
            int tmp = inf;
            for(int i=1;i<=n;i++)
                if (book[i]==0&&dis[i] < tmp) {
                    tmp = dis[i];
                    flag = i;
                }
    
            sum += tmp;
            book[flag] = 1;
        }
        return sum;
    }
    
    
    int main() {
        int V, E;
        while (cin >> V >> E) {
            for(int i=0;i<=V;i++)
                for (int j = 0; j <= V; j++) {
                    if (i == j)e[i][j] = 0;
                    else e[i][j] = inf;
                }
            
            for (int i = 0; i < E; i++) {
                int x, y, z;
                cin >> x >> y >> z;
                e[x][y] = z;
                e[y][x] = z;
            }
            cout << MST_Prime(e, V) << endl;
        }
    }
    自己选的路,跪着也要把它走完------ACM坑
  • 相关阅读:
    iOS 日历控件
    iOS签发者无效
    Swift3
    GitHub管理代码-随笔
    iOS10 适配问题-Xcode8
    iOS 性能调试
    bug
    贝塞尔曲线(UIBezierPath)属性、方法汇总
    webView 自适应高度 document.body 属性
    iOS-集成支付宝支付、微信支付简单总结
  • 原文地址:https://www.cnblogs.com/IKnowYou0/p/6062963.html
Copyright © 2011-2022 走看看