#include#include#include#includeusingnamespacestd;intn,m,f[1010];structnode{intx,y,s;}e[20010];boolcmp(n" />

黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

POJ 2377 Bad Cowtractors

系統(tǒng) 3179 0

這是先前做的幾道最小生成樹的題目,基本都是裸題。

題意:求最大生成樹

由于數(shù)據(jù)比較水,用prime和krusical都可以。我是用krusical做的

?

    #include<iostream>

#include<cstdio>

#include<cmath>

#include<cstring>

#include<algorithm>

using namespace std;

int n,m,f[1010];

struct node

{

    int x,y,s;

}e[20010];

bool cmp(node s, node v)

{

    return s.s>v.s;

}

int find(int x)

{

    if (x==f[x]) return x;

    f[x]=find(f[x]);

    return f[x];

}

void krusical()

{

    int i,t=0,ans=0;

    for (i=0; i<m; i++)

    {

        int x=find(e[i].x);

        int y=find(e[i].y);

        if (x!=y)

        {

            ans+=e[i].s;

            f[y]=f[x];

            t++;

        }

        if (t==n-1) break;

    }

    if (t==n-1) cout<<ans<<endl;

    else cout<<"-1"<<endl;

}

int main ()

{

    cin>>n>>m;

    int i,j;

    for (i=1; i<=n; i++)

        f[i]=i;

    for (i=0; i<m; i++)

        scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].s);

    sort(e,e+m,cmp);

    krusical();

    return 0;

}


  


?


?

POJ 2377 Bad Cowtractors


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論