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

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,對圖中每一條邊,如果存在與之相等的其他的邊,則標記這條邊
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所在樹節點數多于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)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


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

導航

統計

常用鏈接

留言簿

文章檔案(85)

搜索

最新評論

  • 1.?re: poj1426
  • 我嚓,,輝哥,,居然搜到你的題解了
  • --season
  • 2.?re: poj3083
  • @王私江
    (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
  • --游客
  • 3.?re: poj3414[未登錄]
  • @王私江
    0ms
  • --jh818012
  • 4.?re: poj3414
  • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
  • --王私江
  • 5.?re: poj1426
  • 評論內容較長,點擊標題查看
  • --王私江
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99pao成人国产永久免费视频| 国产在线日韩| 欧美jizzhd精品欧美喷水| 久久精品在线视频| 亚洲美女淫视频| 亚洲图片欧洲图片av| 亚洲欧美在线一区| 最新高清无码专区| 亚洲国产日韩欧美在线图片| 亚洲午夜极品| 久久久久久久久久久一区| 欧美剧在线观看| 在线看片成人| 亚洲精品免费在线播放| 久久精品国产精品| 欧美一级理论性理论a| 欧美特黄a级高清免费大片a级| 伊人色综合久久天天| 亚洲人体影院| 国产精品porn| 亚洲福利视频在线| 亚洲一区二区三区四区五区午夜| 亚洲精品黄网在线观看| 免费成人高清视频| 亚洲二区视频在线| 欧美成人一区二区三区片免费| 亚洲一区二区综合| 欧美午夜视频在线观看| 午夜久久久久| 亚洲天堂av图片| 欧美午夜不卡在线观看免费 | 99爱精品视频| 欧美高清视频在线观看| 亚洲欧美在线免费| 国内久久婷婷综合| 久久亚洲一区二区| 久久久夜色精品亚洲| 亚洲精品一区中文| 亚洲美女av网站| 欧美日韩一区二区免费在线观看| 亚洲视频综合| 在线综合+亚洲+欧美中文字幕| 欧美视频三区在线播放| 91久久综合亚洲鲁鲁五月天| 亚洲欧洲一区二区天堂久久| 欧美区日韩区| 香蕉久久夜色| 免费国产一区二区| 99视频有精品| 在线亚洲一区| 国产一区二区三区在线观看视频 | 国产精品久久影院| 欧美一区二区视频观看视频| 国产日本欧美一区二区| 久久成人资源| 蜜臀久久久99精品久久久久久| 亚洲国产精品一区二区www在线 | 午夜在线电影亚洲一区| 欧美激情bt| 久久中文字幕导航| 亚洲欧洲日韩综合二区| 一本色道久久综合| 亚洲第一区在线观看| 亚洲国产精品嫩草影院| 欧美色图五月天| 久久久久久久一区二区三区| 在线观看一区二区视频| 亚洲精品在线看| 欧美日韩色综合| 欧美jjzz| 欧美三区视频| 美女诱惑一区| 国产一区二区三区免费观看| 99riav1国产精品视频| 免费观看一级特黄欧美大片| 亚洲欧美激情诱惑| 亚洲第一在线视频| 亚洲欧美日韩国产中文| 亚洲国产91| 亚洲一区自拍| 国产精品日日做人人爱 | 国产伪娘ts一区| 一道本一区二区| 鲁大师成人一区二区三区| 亚洲图片在线观看| 久久影院午夜片一区| 亚洲免费久久| 欧美激情第三页| 久久精品欧洲| 欧美午夜国产| 一区二区三区www| 亚洲精品久久久久久一区二区| 亚洲欧美第一页| 亚洲视频第一页| 欧美成人黑人xx视频免费观看| 欧美亚洲尤物久久| 亚洲性感激情| 久久亚洲综合网| 欧美综合77777色婷婷| 亚洲欧美制服另类日韩| 久久免费视频在线观看| 一本色道久久88亚洲综合88| 在线日本高清免费不卡| 99视频超级精品| 亚洲欧美日韩中文视频| 久久精品视频va| 亚洲电影观看| 久久噜噜亚洲综合| 免费久久99精品国产自在现线| 最近中文字幕mv在线一区二区三区四区 | 亚洲免费视频成人| 亚洲一区二区三区高清| 99精品国产在热久久| 一本色道久久综合亚洲精品不卡| 久热re这里精品视频在线6| 亚洲精品影院| 欧美成人免费观看| 亚洲国产精品va在线观看黑人| 欧美在线视频免费| 亚洲一区欧美| 最新成人av网站| 亚洲性图久久| 在线欧美视频| 亚洲精品一线二线三线无人区| 欧美日韩国产影片| 久久影院亚洲| 欧美日本亚洲视频| 久久久之久亚州精品露出| 蜜臀91精品一区二区三区| 亚洲网站在线播放| 国产精品jizz在线观看美国| 91久久线看在观草草青青| 国产精品jizz在线观看美国| 欧美性一二三区| 狠狠色丁香久久综合频道 | 久久久久欧美| 欧美黄色影院| 国产亚洲成av人在线观看导航| 欧美日韩国产123区| 欧美xxx成人| 欧美视频国产精品| 亚洲精品午夜| 欧美一区二区观看视频| 欧美日本国产一区| 在线视频成人| 久久爱www久久做| 亚洲精品无人区| 久久精品最新地址| 欧美视频在线观看| 亚洲国内在线| 免费黄网站欧美| 久久久久久久久久久久久9999| 小嫩嫩精品导航| 亚洲国产乱码最新视频| 欧美一区=区| 国产日韩在线播放| 亚洲女性裸体视频| 亚洲美女视频在线观看| 欧美日韩黄视频| 亚洲日本无吗高清不卡| 嫩草国产精品入口| 久久久久久九九九九| 国精品一区二区三区| 性久久久久久久久| 亚洲国产小视频在线观看| 亚洲线精品一区二区三区八戒| 91久久久久久久久久久久久| 午夜亚洲性色视频| 久久久综合香蕉尹人综合网| 一区二区亚洲精品| 久久精品国产综合| 蜜桃av一区二区三区| 在线一区日本视频| 欧美高清视频www夜色资源网| 欧美在线视频a| 亚洲国产精品久久久久秋霞不卡 | 一区二区三区在线观看国产| 亚洲综合日韩在线| 久久久久久香蕉网| 久久久亚洲国产天美传媒修理工| 国产亚洲一区在线| 美女精品视频一区| 亚洲少妇中出一区| 久久琪琪电影院| 一本色道久久综合| 国产视频一区三区| 欧美成人在线网站| 午夜精品偷拍| 亚洲精品永久免费精品| 久久精品人人| 午夜影院日韩| 亚洲另类自拍| 91久久黄色| 激情久久一区| 国产一区二区电影在线观看| 欧美精品一区二| 久热国产精品视频| 欧美制服第一页| 久久久999成人| 久久精品国产一区二区三|