青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

poj1679

The Unique MST

Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 13200 Accepted: 4575

Description

Given a connected undirected graph, tell if its minimum spanning tree is unique.

Definition 1 (Spanning Tree): Consider a connected, undirected graph G = (V, E). A spanning tree of G is a subgraph of G, say T = (V', E'), with the following properties:
1. V' = V.
2. T is connected and acyclic.

Definition 2 (Minimum Spanning Tree): Consider an edge-weighted, connected, undirected graph G = (V, E). The minimum spanning tree T = (V, E') of G is the spanning tree that has the smallest total cost. The total cost of T means the sum of the weights on all the edges in E'.

Input

The first line contains a single integer t (1 <= t <= 20), the number of test cases. Each case represents a graph. It begins with a line containing two integers n and m (1 <= n <= 100), the number of nodes and edges. Each of the following m lines contains a triple (xi, yi, wi), indicating that xi and yi are connected by an edge with weight = wi. For any two nodes, there is at most one edge connecting them.

Output

For each input, if the MST is unique, print the total cost of it, or otherwise print the string 'Not Unique!'.

Sample Input

2
3 3
1 2 1
2 3 2
3 1 3
4 4
1 2 2
2 3 2
3 4 2
4 1 2

Sample Output

3
Not Unique!
裸的判定最小生成樹是否唯一
做法
1,對圖中每一條邊,如果存在與之相等的其他的邊,則標(biāo)記這條邊
2,求一次最小生成樹,得到weight1,作為比較用
3,對于最小生成樹中的每一條邊,檢查這條邊有沒有與之相同的,如果有,則刪掉這條邊,
再求最小生成樹,如果相等,則說明最小生成樹不唯一
判斷完所有要判斷的邊后任然不相等,說明最小生成樹唯一
  1#include<algorithm>
  2#include<cstdlib>
  3using namespace std;
  4#define maxn 101
  5#define maxm 15000
  6struct node
  7{
  8    int u,v,w;
  9    int equal,used,del;
 10}
 edge[maxm];
 11int n,m;
 12int parent[maxn];
 13int first;
 14void ufset()
 15{
 16    int i;
 17    for(i=1; i<=n; i++) parent[i]=-1;
 18}

 19int find(int x)
 20{
 21    int s;
 22    for(s=x; parent[s]>=0; s=parent[s]);
 23    while(s!=x)
 24    {
 25        int tmp=parent[x];
 26        parent[x]=s;
 27        x=tmp;
 28    }

 29    return s;
 30}

 31void union1(int R1,int R2)
 32{
 33    int r1=find(R1),r2=find(R2);
 34    int tmp=parent[r1]+parent[r2];
 35    if (parent[r1]>parent[r2])//r2所在樹節(jié)點數(shù)多于r1
 36    {
 37        parent[r1]=r2;
 38        parent[r2]=tmp;
 39    }

 40    else
 41    {
 42        parent[r2]=r1;
 43        parent[r1]=tmp;
 44    }

 45}

 46int cmp(struct node a,struct node b)
 47{
 48    return a.w<b.w;
 49}

 50int kruskal()
 51{
 52    int sumweight=0,num=0;
 53    int u,v;
 54    ufset();
 55    for(int i=0; i<m; i++)
 56    {
 57        if (edge[i].del==1)
 58        {
 59            continue;
 60        }

 61        u=edge[i].u;
 62        v=edge[i].v;
 63        if (find(u)!=find(v))
 64        {
 65            sumweight+=edge[i].w;
 66            num++;
 67            union1(u,v);
 68            if (first)
 69            {
 70                edge[i].used=1;
 71            }

 72        }

 73        if (num>=n-1)
 74        {
 75            break;
 76        }

 77    }

 78    return sumweight;
 79}

 80int main()
 81{
 82    int t,i,j,k;
 83    int u,v,w;
 84    scanf("%d",&t);
 85    for(i=1; i<=t; i++)
 86    {
 87        scanf("%d%d",&n,&m);
 88        memset(edge,0,sizeof(edge));
 89        for(j=0; j<m; j++)
 90        {
 91            scanf("%d%d%d",&u,&v,&w);
 92            edge[j].u=u;
 93            edge[j].v=v;
 94            edge[j].w=w;
 95        }

 96        for(j=0; j<m; j++)
 97            for(k=0; k<m; k++)
 98            {
 99                if (k==j) continue;
100                if (edge[j].w==edge[k].w) edge[j].equal=1;
101            }

102        sort(edge,edge+m,cmp);
103        first=1;
104        int weight1=kruskal(),weight2;
105        first=0;
106        for(j=0;j<m;j++)
107        {
108            if (edge[j].used==1&&edge[j].equal==1)
109            {
110                edge[j].del=1;
111                weight2=kruskal();
112                if (weight2==weight1)
113                {
114                    printf("Not Unique!\n");
115                    break;
116                }

117                edge[j].del=0;
118            }

119        }

120        if (j>=m)
121        {
122            printf("%d\n",weight1);
123        }

124    }

125    return 0;
126}

127
 

posted on 2012-04-02 01:49 jh818012 閱讀(263) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導(dǎo)航

統(tǒng)計

常用鏈接

留言簿

文章檔案(85)

搜索

最新評論

  • 1.?re: poj1426
  • 我嚓,,輝哥,,居然搜到你的題解了
  • --season
  • 2.?re: poj3083
  • @王私江
    (8+i)&3 相當(dāng)于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
  • --游客
  • 3.?re: poj3414[未登錄]
  • @王私江
    0ms
  • --jh818012
  • 4.?re: poj3414
  • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
  • --王私江
  • 5.?re: poj1426
  • 評論內(nèi)容較長,點擊標(biāo)題查看
  • --王私江
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品黄视频| 麻豆国产精品777777在线| 亚洲最新在线视频| 亚洲一级网站| 久久午夜av| 亚洲精品之草原avav久久| 亚洲一区二区综合| 久久久午夜视频| 欧美日韩亚洲一区三区| 国产亚洲欧洲997久久综合| 亚洲人午夜精品免费| 欧美亚洲视频| 欧美激情欧美狂野欧美精品| 一区二区三区鲁丝不卡| 久久精品午夜| 国产精品扒开腿做爽爽爽视频| 很黄很黄激情成人| 亚洲视频香蕉人妖| 蜜臀av性久久久久蜜臀aⅴ| 在线视频欧美日韩精品| 久久亚洲精品伦理| 欧美午夜国产| 亚洲欧洲美洲综合色网| 欧美在线首页| 9色国产精品| 蜜臀av在线播放一区二区三区| 国产精品福利av| 亚洲激情在线视频| 久久久99精品免费观看不卡| 日韩视频中文字幕| 久热精品视频在线观看一区| 国产农村妇女毛片精品久久莱园子| 91久久精品一区| 欧美专区中文字幕| 99精品视频免费在线观看| 久久亚洲捆绑美女| 国产午夜精品美女视频明星a级 | 久久免费国产精品| 一区二区日本视频| 欧美激情片在线观看| 精品不卡一区| 久久精品国产v日韩v亚洲| 夜夜爽夜夜爽精品视频| 欧美激情一区二区三区四区| 影音先锋一区| 久久精品国产精品亚洲精品| 一区二区高清在线观看| 欧美成人精品在线视频| 在线成人小视频| 久久视频一区| 亚洲欧美日韩精品久久亚洲区 | 欧美成人精品激情在线观看| 亚洲欧美视频在线观看视频| 欧美体内she精视频| 日韩性生活视频| 亚洲风情亚aⅴ在线发布| 欧美一区二区黄色| 国产女人水真多18毛片18精品视频| 亚洲色图综合久久| 亚洲经典三级| 欧美电影在线观看完整版| 亚洲大片av| 免费91麻豆精品国产自产在线观看| 午夜精品久久久久久久蜜桃app| 国产精品久在线观看| 一区二区三区免费看| 亚洲欧洲精品一区| 欧美激情视频一区二区三区在线播放 | 在线观看日韩av| 久久综合九色九九| 欧美伊人久久大香线蕉综合69| 国产精品一区二区三区成人| 亚洲午夜精品国产| 一本色道88久久加勒比精品| 欧美日韩成人在线| 一区二区三区日韩欧美精品| 亚洲精品少妇网址| 欧美日韩1区| 在线一区视频| 在线视频日本亚洲性| 国产精品毛片| 性久久久久久久久久久久| 亚洲自拍偷拍视频| 国产欧美一区二区精品仙草咪| 欧美一区二区三区婷婷月色 | 亚洲第一色在线| 欧美大尺度在线| 欧美成人资源网| 一区二区三区蜜桃网| 亚洲一品av免费观看| 国产欧美日本| 久久夜色精品国产亚洲aⅴ| 久久亚洲色图| 日韩视频在线播放| 99国产精品久久久久老师 | 欧美刺激午夜性久久久久久久| 欧美电影在线观看完整版| 在线视频一区观看| 中文欧美字幕免费| 国产欧美一区视频| 美女视频黄免费的久久| 欧美成人小视频| 亚洲视频导航| 亚洲免费影视| 永久555www成人免费| 亚洲国产电影| 国产精品成人一区二区艾草| 欧美在线视频一区二区| 久久夜色精品国产欧美乱极品| 亚洲另类春色国产| 亚洲视频每日更新| 国语自产精品视频在线看一大j8| 免费成人av在线| 欧美久久久久免费| 校园春色国产精品| 久久日韩粉嫩一区二区三区| 日韩写真视频在线观看| 亚洲女人天堂成人av在线| 尤物yw午夜国产精品视频| 亚洲啪啪91| 国产日韩精品久久久| 欧美肥婆bbw| 欧美午夜久久久| 久久免费99精品久久久久久| 欧美高清视频在线观看| 亚洲欧美日韩精品| 久久视频免费观看| 亚洲一区二区久久| 久久精品一区四区| 在线视频成人| 亚洲少妇最新在线视频| 国产主播在线一区| 亚洲乱码国产乱码精品精可以看| 国产欧美日韩亚洲| 亚洲激情婷婷| 国产一区在线观看视频| 亚洲人成在线观看一区二区| 国产日韩欧美成人| 亚洲精品免费电影| 狠狠久久亚洲欧美| 一本色道久久加勒比88综合| 影音欧美亚洲| 亚洲一区二区三区在线视频 | 久久久国产精品一区二区中文| 欧美精品一区二区久久婷婷| 久久成人免费电影| 欧美精品手机在线| 老司机精品福利视频| 国产精品激情偷乱一区二区∴| 欧美福利视频在线观看| 国产欧美在线看| 日韩午夜av电影| 亚洲国产成人av| 午夜视频一区二区| 一区二区三区日韩精品视频| 久久免费午夜影院| 欧美一区国产一区| 欧美日韩在线观看一区二区| 美女精品视频一区| 国产酒店精品激情| 亚洲免费成人av| 亚洲欧洲日本国产| 久久久久成人网| 欧美在线视频二区| 国产精品久久久久久久久免费樱桃| 亚洲国产一区二区三区高清| 好吊一区二区三区| 午夜精品久久一牛影视| 亚洲男女自偷自拍图片另类| 欧美美女bbbb| 亚洲电影免费在线观看| 影音先锋亚洲一区| 久久精品女人| 久久香蕉国产线看观看网| 国产精品一区二区黑丝| 一本一本a久久| 在线视频日韩| 欧美激情久久久| 欧美国产日韩一区二区| 激情国产一区| 久久精品99无色码中文字幕| 欧美一区二区黄色| 国产精品视频不卡| 亚洲一区二区三区久久| 亚洲一区二区高清视频| 欧美日韩中文字幕| 日韩视频在线一区二区| aa日韩免费精品视频一| 欧美激情第3页| 亚洲国产黄色片| 最新日韩在线| 久久欧美肥婆一二区| 欧美sm重口味系列视频在线观看| 狠狠色综合色区| 久久九九免费视频| 老司机成人网| 亚洲国产日韩一区| 欧美jizzhd精品欧美喷水 | 亚洲视频久久| 欧美午夜a级限制福利片|