• <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 無向圖找橋、縮點問題

            題意很簡單,一個無向圖,要求在圖中添加最少的邊,使得任意兩節點間均有2條或以上不同的路徑。
            這題本質上看是添邊然后構成一個強聯通圖。
            算法是這樣,首先找到橋,將強聯通分支縮點,這樣構成一棵樹。要把樹變為強聯通圖,即將葉節點兩兩配對即可(如果有奇數個頁節點,則將未配對節點再添加一條邊即可)。
            注意!無向圖找橋的時候要對邊加以標記,除非沒有平行邊,否則不要在DFS中用父節點防止走2環
             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 閱讀(661) 評論(0)  編輯 收藏 引用 所屬分類: graph

            <2010年10月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久综合噜噜激激的五月天| 久久久久久国产a免费观看不卡| 国产午夜精品理论片久久| 日韩精品久久久久久免费| 热99RE久久精品这里都是精品免费| 国产成人无码精品久久久免费| 久久777国产线看观看精品| 久久精品毛片免费观看| 国产99精品久久| 91久久精品无码一区二区毛片| 久久香蕉国产线看观看99| 狠狠色丁香婷婷综合久久来| 色偷偷888欧美精品久久久| 久久99国产精品久久久| 久久香蕉国产线看观看99| 999久久久免费国产精品播放| 伊人久久大香线蕉精品| 久久精品国产一区二区| 思思久久99热只有频精品66| 久久国产欧美日韩精品| 久久精品国产亚洲av影院| 久久99热国产这有精品| 久久无码国产| 天堂久久天堂AV色综合 | 国产一区二区三区久久精品| 久久久久99精品成人片直播| 99久久精品日本一区二区免费| 久久久综合九色合综国产| 一本色道久久88综合日韩精品| 久久综合亚洲欧美成人| 九九热久久免费视频| 2021国产精品午夜久久| 久久精品国产91久久综合麻豆自制 | 久久精品成人欧美大片| 亚洲色欲久久久久综合网| 久久久久亚洲精品无码蜜桃| 国产成人香蕉久久久久| 色婷婷综合久久久久中文一区二区| 国产精品伊人久久伊人电影| 奇米影视7777久久精品| 久久久久久久久久久免费精品 |