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

posts - 33,  comments - 33,  trackbacks - 0

題意:判斷一個(gè)給定的圖,沒(méi)有環(huán),而且存在一個(gè)鏈,圖上的所有點(diǎn)或者在這條鏈上或者在其的鄰居
題解:
1.判斷環(huán):
對(duì)于無(wú)向圖:如果 點(diǎn) < 邊 + 1,則存在環(huán);
然后使用并查集進(jìn)一步判斷環(huán)的存在

2.判斷是否存在鏈
首先統(tǒng)計(jì)各個(gè)點(diǎn)的度,然后對(duì)于度為1的點(diǎn),將其相連的邊刪掉,再統(tǒng)計(jì)新圖的度,這時(shí)新圖應(yīng)該剩下一條鏈,
也就是說(shuō),新圖的不存在大于2個(gè)度為1的點(diǎn),而且這個(gè)點(diǎn)在舊圖的度是大于1的。

代碼:

#include <stdio.h>
#include 
<string.h>
#include 
<vector>
#include 
<queue>

using namespace std;

const int N = 105;

vector
<int> graphs[N];
int deg[N];
int degOld[N];
int n,e;
int cnt;

class UnionSet
{
private:
    
int parent[N];
    
int rank[N];
    
int size;
public:
    UnionSet()
    
{
        size 
= 0;
    }


    UnionSet(
int _size)
    
{
        init(_size);
    }

    
~UnionSet()
    
{

    }


    
void init(int _size)
    
{
        size 
= _size;
        
for (int i = 0; i < size; ++i)
        
{
            parent[i] 
= -1;
            rank[i] 
= 1;
        }

    }


    
void adjust(int _root,int _x)
    
{
        
int i = _x;
        
int j ;
        
while(parent[i] >= 0)
        
{
            j 
= parent[i];
            parent[i] 
= _root;
            i 
= j;
        }

    }


    
int getRoot(int _x)
    
{
        
int r = _x;
        
while(parent[r] >= 0)
        
{
            r
= parent[r];
        }


        
//adjust
        adjust(r,_x);
        
return r;

    }


    
void join(int _r1,int _r2)
    
{
        
if (_r1 == _r2)
        
{
            
return ;
        }

        
int root1 = getRoot(_r1);
        
int root2 = getRoot(_r2);
        
if (root1 == root2)
        
{
            
return ;
        }

        
if (rank[root1] > rank[root2])
        
{
            parent[root2] 
= root1;
            rank[root1] 
+= rank[root2];
        }

        
else
        
{
            parent[root1] 
= root2;
            rank[root2] 
+= rank[root1];
        }


    }


    
int getRank(int _x)
    
{
        
return rank[_x];
    }


}
;

static UnionSet uSet;



void Test()
{
    memset(deg,
0,sizeof(deg));
    
for (int i = 0; i < N; ++i)
    
{
        graphs[i].clear();
    }

    
int a,b;
    uSet.init(n
+1);
    
for (int i = 0; i < e; ++i)
    
{
        scanf(
"%d %d",&a,&b);
        deg[a]
++;
        deg[b]
++;
        graphs[a].push_back(b);
        graphs[b].push_back(a);
        uSet.join(a,b);
    }

    
if (n < e + 1)
    
{
        printf(
"Graph %d is not a caterpillar.\n", cnt);
        
return ;
    }

    
for (int i = 2; i <= n; ++i)
    
{
        
if (uSet.getRoot(1!= uSet.getRoot(i))
        
{
            printf(
"Graph %d is not a caterpillar.\n", cnt);
            
return ;
        }

    }


    
for (int i = 1; i <= n; ++i)
    
{
        degOld[i] 
= deg[i];
    }


    
for (int i = 1; i <= n; ++i)
    
{
        
if (degOld[i] == 1)
        
{
            
for (int j = 0; j < graphs[i].size(); ++j)
            
{
                deg[graphs[i][j]]
--;
            }

        }

    }


    
int tmp = 0;
    
for (int i = 1; i <= n; ++i)
    
{
        
if(degOld[i] > 1 && deg[i] == 1)
            
++tmp;
    }

    
if(tmp > 2)
        printf(
"Graph %d is not a caterpillar.\n", cnt);
    
else
        printf(
"Graph %d is a caterpillar.\n", cnt);

}


int main()
{
    
//freopen("data.txt","r",stdin);
    cnt = 0;
    
while(scanf("%d",&n) != EOF)
    
{
        
if(n == 0)
            
break;
        scanf(
"%d",&e);
        
++cnt;

        Test();
    }

    
return 0;
}


 

posted on 2011-11-17 10:50 bennycen 閱讀(6004) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 算法題解
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产精品免费| 欧美视频在线视频| 亚洲高清视频一区| 亚洲第一页自拍| 老司机精品福利视频| 亚洲精品1区2区| 亚洲人成在线免费观看| 欧美日韩精品不卡| 午夜在线成人av| 久久久久国产一区二区三区四区| 在线观看的日韩av| 欧美激情第8页| 欧美性猛交一区二区三区精品| 亚洲欧美日本在线| 久久精品在线视频| 一区二区三区高清在线观看| 亚洲欧美国产精品专区久久| 9l视频自拍蝌蚪9l视频成人| 一本到12不卡视频在线dvd| 欧美视频免费看| 久久综合狠狠综合久久激情| 欧美国产一区二区三区激情无套| 亚洲欧美国产日韩天堂区| 久久国产精品高清| 制服丝袜亚洲播放| 久久人人97超碰国产公开结果| 一本不卡影院| 久久久久99| 亚洲欧美一区二区视频| 久久综合久久综合久久综合| 性8sex亚洲区入口| 欧美精品在线视频| 久久综合九色九九| 国产精品久久久久毛片大屁完整版 | 欧美在线一区二区三区| 日韩视频免费大全中文字幕| 欧美一区二区视频网站| 亚洲亚洲精品在线观看| 欧美wwwwww| 麻豆精品在线观看| 国产欧美日韩精品在线| 99亚洲一区二区| 最新国产の精品合集bt伙计| 欧美一进一出视频| 欧美亚洲日本网站| 欧美日韩一区二区在线观看| 亚洲国产精品尤物yw在线观看| 国内精品视频666| 亚洲在线不卡| 亚洲在线中文字幕| 欧美日韩视频在线一区二区| 欧美激情偷拍| 亚洲精品国产精品国自产在线| 欧美一区二区三区四区高清 | 精品成人在线观看| 欧美在线二区| 久久婷婷国产麻豆91天堂| 国产乱码精品一区二区三区不卡| 一区二区欧美国产| 亚洲视频成人| 国产精品99免费看| 亚洲在线免费| 欧美影院在线| 黄色成人91| 六月丁香综合| 亚洲国产一区二区视频| 日韩一区二区精品| 欧美日韩不卡在线| aaa亚洲精品一二三区| 亚洲视频精选| 国产精品毛片高清在线完整版| 一区二区三区四区精品| 午夜激情一区| 精久久久久久久久久久| 久久久久国产精品厨房| 欧美wwwwww| 日韩视频免费观看高清完整版| 欧美精品久久久久久| 在线视频你懂得一区| 9人人澡人人爽人人精品| 一区二区三区日韩精品| 国产精品美女主播| 午夜日韩av| 欧美成人精品激情在线观看| 亚洲人成网站影音先锋播放| 欧美日韩精品免费观看视频完整| 亚洲色在线视频| 久久久久国产一区二区三区| 亚洲国产欧美日韩另类综合| 欧美日韩国产精品一区二区亚洲| 亚洲免费激情| 久久免费国产| 一本色道久久加勒比88综合| 国产毛片精品国产一区二区三区| 久久精品视频在线播放| 亚洲激情一区| 久久久久久夜精品精品免费| 亚洲精品孕妇| 国模私拍视频一区| 欧美激情亚洲| 久久精品女人| 99re66热这里只有精品4| 久久人人爽国产| 一区二区高清| 欲香欲色天天天综合和网| 欧美日韩高清免费| 久久精品中文字幕免费mv| 亚洲精品一区二区三区在线观看| 久久久久一区二区| 亚洲一区二区三区涩| 亚洲电影自拍| 国产日韩欧美电影在线观看| 欧美国产日本韩| 久久国产精品亚洲va麻豆| 亚洲一区二区三区视频播放| 亚洲国产精品一区二区第四页av | 亚洲国产精品一区二区www在线| 欧美在线视频免费观看| 中文精品在线| 亚洲青色在线| 在线国产精品一区| 国产精品一区一区| 国产精品大片wwwwww| 欧美ed2k| 麻豆国产精品777777在线| 欧美一区日韩一区| 亚洲欧美日韩国产中文 | 久久久99免费视频| 性欧美超级视频| 亚洲女人小视频在线观看| 亚洲美女电影在线| 亚洲日本成人女熟在线观看| 韩日精品中文字幕| 国产午夜精品全部视频播放| 国产精品永久入口久久久| 国产精品久久久久一区二区三区 | 久久成年人视频| 性久久久久久| 校园春色综合网| 亚洲欧美日韩综合| 亚洲欧美综合精品久久成人| 亚洲一区二区三区乱码aⅴ| 亚洲精品网址在线观看| 亚洲美女诱惑| 亚洲一级二级| 午夜在线观看免费一区| 欧美在线三级| 久久久噜噜噜久久久| 亚洲国产美女久久久久| 精品动漫3d一区二区三区免费 | 久久综合图片| 你懂的国产精品| 欧美激情一区在线| 欧美日韩一区在线观看| 国产精品对白刺激久久久| 国产精品永久免费观看| 激情久久一区| 亚洲精品国产视频| 亚洲一区欧美激情| 久久国产一区| 欧美华人在线视频| 亚洲乱码国产乱码精品精 | 久久一区视频| 91久久在线播放| 一本色道久久综合亚洲精品婷婷| 亚洲一区二区网站| 久久婷婷av| 欧美吻胸吃奶大尺度电影| 国产伦精品一区二区三区在线观看| 国内精品久久久久久| 亚洲九九精品| 欧美在线高清视频| 亚洲国产精品欧美一二99| 亚洲一区激情| 美腿丝袜亚洲色图| 国产精品国产一区二区| 影音先锋国产精品| 亚洲男人的天堂在线| 免播放器亚洲| 亚洲香蕉网站| 免费日韩视频| 国产麻豆日韩| 一区二区三区四区在线| 久久一二三国产| 在线视频中文亚洲| 蘑菇福利视频一区播放| 国产精品美女www爽爽爽| 亚洲激情在线激情| 欧美一区午夜精品| 亚洲精品三级| 久久亚洲不卡| 国产麻豆9l精品三级站| 亚洲美女淫视频| 噜噜噜91成人网| 亚洲综合成人婷婷小说| 欧美日本中文| 亚洲欧洲另类| 老鸭窝亚洲一区二区三区| 亚洲午夜一区二区| 欧美日韩午夜在线视频|