POJ2377--Bad Cowtractors

來源:互聯網
上載者:User

題目大意:Bessie為了破壞FJ的計劃,要搞出一個最大產生樹。


分析:就是把最小產生樹演算法的一個符號改一下就行了。另外,要判斷圖是否聯通


代碼

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 20010;struct Edge{    int s, e, w;    bool operator < (const Edge & e1) const {        return w > e1.w;    }}e[maxn];int f[1010], n, m;int ans;int getfather(int x) {    if(f[x] == x) return x;    else return f[x] = getfather(f[x]);}int kruscal() {    sort(e+1, e+m+1);    int cnt = n;    for(int i = 1; i <= n; i++) f[i] = i;    for(int i = 1; i <= m; i++) {        int f1 = getfather(e[i].s);        int f2 = getfather(e[i].e);        if(f1 != f2) {            f[f1] = f2;            ans += e[i].w;            cnt--;        }    }    if(cnt == 1) return true;   //cnt代表;聯通塊的個數    else return false;}int main() {    while(~scanf("%d%d", &n, &m)) {        for(int i = 1; i <= m; i++)            scanf("%d%d%d", &e[i].s, &e[i].e, &e[i].w);        if(kruscal())            printf("%d\n", ans);        else printf("-1\n");    }    return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.