• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            poj 1679 The Unique MST

            第一次寫次小生成樹,沒想到
            思想就是:求一次最小生成樹,記錄所用到的邊,然后不用所有第一次用到的邊嘗試構(gòu)成構(gòu)成最小生成樹。
            用Kruskal先求最小生成樹,結(jié)果即為min,把所用到的邊記錄下來(這里是記錄的對(duì)應(yīng)的下表),然后枚舉這些邊,
            每次去掉一個(gè)邊求一次最小生成樹,結(jié)果為tmin,如果能夠成最小生成樹并且tmin==min,則說明最小生成樹不唯一
            #include<iostream> //poj 1679
            #include<cstdio>
            #include<algorithm>
            using namespace std;
            const int MAX = 101;
            int n, m;

            struct edge
            {
                int x;
                int y;
                int len;
            }E[MAX*MAX];

            int fa[MAX];
            int indexEdge[MAX];
            int index;
            bool cmp(const edge &a, const edge &b)
            {
                return a.len < b.len;
            }

            int find(int x)
            {
                if(fa[x] == x)return x;
                return fa[x] = find(fa[x]);
            }

            int Kruskal(int location)  //不用location位置的邊
            {
                int ans = 0;
                int tx, ty;
                int cnt = 0;
                if (location == -1)index = 0;//location == -1 第一次求最小生成樹,indexEdge[index]紀(jì)錄第index用到的邊的下標(biāo)
                for(int k = 1; k <= n; k ++)fa[k] = k;

                for(int i = 0; i < m; i ++)
                {
                    if(i == location)continue;
                    tx = find(E[i].x);
                    ty = find(E[i].y);
                    if(tx != ty)
                    {
                        fa[tx] = ty;
                        ans += E[i].len;
                        cnt ++;
                        if(location == -1)//第一次最小生成樹的時(shí)候把location置為-1
                        {
                            indexEdge[index] = i;
                            index ++;
                        }
                        if(cnt == n - 1)break;
                    }
                }

                if(cnt == n - 1)return ans;
                return -1;
            }

            int main()
            {
                int t, i;
                scanf("%d",&t);
                while(t --)
                {
                    memset(E, 0, sizeof E);
                    memset(indexEdge, 0, sizeof indexEdge);

                    scanf("%d %d",&n, &m);

                    for(i = 0; i < m; i ++)
                        scanf("%d %d %d",&E[i].x, & E[i].y , & E[i].len);

                    sort(E, E + m, cmp);
                    
                    int min = Kruskal(-1);    
                    int tmin = (1<<20), temp;
                    //cout << index << endl;
                    
                    for(i = 0; i < index; i ++)
                    {
                        //cout <<i <<' '<< indexEdge[i]<< endl;
                        temp = Kruskal(indexEdge[i]);
                        if(temp != -1 && temp < tmin)
                            tmin = temp;
                    }
                    
                    if(tmin == min)
                        printf("Not Unique!\n");
                    else printf("%d\n",min);
                }
                                       
                return 0;
            }

            posted on 2010-12-11 16:48 田兵 閱讀(511) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 圖論題

            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            久久精品九九亚洲精品天堂| 欧美日韩中文字幕久久久不卡| 国产精品美女久久久免费| 亚洲级αV无码毛片久久精品| 亚洲国产成人精品女人久久久| 久久男人中文字幕资源站| 久久福利青草精品资源站免费| 四虎国产永久免费久久| 色综合久久中文综合网| 国产精品伦理久久久久久| 国产一区二区精品久久岳| 久久国产成人亚洲精品影院 | 久久精品国产秦先生| 久久久久高潮毛片免费全部播放 | 久久伊人中文无码| 久久久久久久综合日本| 久久天天婷婷五月俺也去 | 少妇久久久久久被弄高潮| 欧美精品久久久久久久自慰| 国产精品福利一区二区久久| 99精品久久久久久久婷婷| 欧美亚洲日本久久精品| 亚洲午夜久久久久久久久电影网 | 亚洲日韩中文无码久久| 久久亚洲精品无码AV红樱桃| 国产成人久久精品麻豆一区| 狠狠色伊人久久精品综合网| 久久这里有精品| 国产精品99久久99久久久| 日本福利片国产午夜久久| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 欧美日韩成人精品久久久免费看| 日韩AV毛片精品久久久| 精品人妻久久久久久888| 91久久九九无码成人网站| 99久久精品费精品国产| 久久这里的只有是精品23| 久久九九久精品国产| 久久久久亚洲AV片无码下载蜜桃| 久久亚洲精品中文字幕三区| 午夜精品久久久久9999高清|