• <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>

            pku 3177 Redundant Paths 無向圖找橋、縮點問題

            題意很簡單,一個無向圖,要求在圖中添加最少的邊,使得任意兩節(jié)點間均有2條或以上不同的路徑。
            這題本質(zhì)上看是添邊然后構(gòu)成一個強聯(lián)通圖。
            算法是這樣,首先找到橋,將強聯(lián)通分支縮點,這樣構(gòu)成一棵樹。要把樹變?yōu)閺娐?lián)通圖,即將葉節(jié)點兩兩配對即可(如果有奇數(shù)個頁節(jié)點,則將未配對節(jié)點再添加一條邊即可)。
            注意!無向圖找橋的時候要對邊加以標記,除非沒有平行邊,否則不要在DFS中用父節(jié)點防止走2環(huán)
             1 # include <stdio.h>
             2 # include <string.h>
             3 # include <stdbool.h>
             4 # define MAX 0xfffffff
             5 # define min(a,b) ((a)<(b)?(a):(b))
             6 int n,m;
             7 int g[5001],v[20001],nxt[20001],c=0;
             8 int cnt=0,low[5001],cid[5001],cnum=0;
             9 bool map[5001][5001];
            10 bool used[20001];
            11 int stack[5001],top=-1;
            12 void dfs(int pos)
            13 {
            14      int p,now=cnt++;
            15      stack[++top]=pos;
            16      low[pos]=now;
            17      for(p=g[pos];p!=-1;p=nxt[p])
            18      if(!used[p>>1])
            19      {
            20        used[p>>1]=1;
            21        if(low[v[p]]==-1)
            22          dfs(v[p]);
            23         low[pos]=min(low[pos],low[v[p]]);
            24        if(low[v[p]]>now)
            25        {
            26           do
            27           {
            28               cid[stack[top]]=cnum;
            29           }while(stack[top--]!=v[p]);
            30           cnum++;
            31        }
            32      }
            33 }
            34 
            35 int main()
            36 {
            37    // freopen("input.txt","r",stdin);
            38    // freopen("output.txt","w",stdout);
            39     int i,p,ans=0;
            40     scanf("%d%d",&n,&m);
            41     memset(g,-1,sizeof(g));
            42     while(m--)
            43     {
            44        int s,t;
            45        scanf("%d%d",&s,&t);
            46        v[c]=t;
            47        nxt[c]=g[s];
            48        g[s]=c++;
            49        v[c]=s;
            50        nxt[c]=g[t];
            51        g[t]=c++;
            52        
            53     }    
            54     memset(low,-1,sizeof(low));
            55     memset(used,0,sizeof(used));
            56     dfs(1);
            57     while(top>=0)
            58        cid[stack[top--]]=cnum;
            59     cnum++;
            60     memset(map,0,sizeof(map));
            61     for(i=1;i<=n;i++)
            62       for(p=g[i];p!=-1;p=nxt[p])
            63       {
            64           if(cid[v[p]]!=cid[i])
            65              map[cid[i]][cid[v[p]]]=map[cid[v[p]]][cid[i]]=1;
            66       }
            67     for(i=0;i<cnum;i++)
            68     {
            69       int cal=0;
            70       for(p=0;p<cnum;p++)
            71          cal+=map[p][i];
            72       ans+=(cal==1?1:0);
            73     }
            74     printf("%d\n",(ans+1)>>1);
            75   //  system("pause");
            76     return 0;
            77 }
            78 


            posted on 2010-10-25 23:39 yzhw 閱讀(671) 評論(0)  編輯 收藏 引用 所屬分類: graph

            <2011年1月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導(dǎo)航

            統(tǒng)計

            公告

            統(tǒng)計系統(tǒng)

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久这里只有精品视频99| 无码人妻少妇久久中文字幕| 97热久久免费频精品99| 伊人久久大香线蕉精品| 99久久做夜夜爱天天做精品| 亚洲午夜久久久久久久久久| 91精品久久久久久无码| 大香伊人久久精品一区二区| 日本一区精品久久久久影院| 久久毛片一区二区| 久久99国产精品久久99果冻传媒| 欧美激情精品久久久久久久九九九| 色欲综合久久中文字幕网| 久久一区二区三区99| 久久青青草原国产精品免费| 亚洲AV无一区二区三区久久| 色婷婷综合久久久久中文字幕| 一本色道久久88加勒比—综合| 国产成人无码精品久久久性色| 久久久久国色AV免费看图片| 中文字幕一区二区三区久久网站| 久久精品国产99久久无毒不卡| 精品久久久久久中文字幕大豆网| 精品久久久无码中文字幕 | 久久精品成人免费观看97| 色欲久久久天天天综合网| 武侠古典久久婷婷狼人伊人| 精品国产乱码久久久久久浪潮| 精品午夜久久福利大片| 国内精品人妻无码久久久影院| 精品人妻伦九区久久AAA片69| 久久久久久一区国产精品| 91精品婷婷国产综合久久| 久久久九九有精品国产| 亚洲国产天堂久久综合网站| 秋霞久久国产精品电影院| 国产综合免费精品久久久| 狠狠精品久久久无码中文字幕| 久久伊人五月天论坛| 四虎国产精品成人免费久久| 国产色综合久久无码有码|