• <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 2553 The Bottom of a Graph 強連通分量+縮點

            這類題目遇到好幾條了,不想解釋了,藍皮書上有個學校軟件援助計劃,poj上也有原題,這題太裸了,不解釋。。
             1 # include <stdio.h>
             2 # include <string.h>
             3 # include <stdbool.h>
             4 # include <stdlib.h>
             5 # define min(a,b) ((a)<(b)?(a):(b))
             6 bool map[5005][5005];
             7 int n,m;
             8 int dfn,id[5005],low[5005],con[5005],cn,stack[5005],top,res[5005],rc;
             9 bool count[5005];
            10 int cmp(const void *a,const void *b)
            11 {
            12     return *(int *)a-*(int *)b;
            13 }
            14 void dfs(int pos)
            15 {
            16     int i;
            17     id[pos]=low[pos]=dfn++;
            18     stack[top++]=pos;
            19     for(i=1;i<=n;i++)
            20       if(map[pos][i])
            21       {
            22         if(id[i]==-1)
            23            dfs(i);
            24         low[pos]=min(low[pos],low[i]);
            25       }
            26     if(low[pos]>=id[pos])
            27     {
            28        do
            29        {
            30           con[stack[--top]]=cn;
            31           low[stack[top]]=n;
            32        }while(stack[top]!=pos);
            33        cn++;
            34     }
            35 }
            36 int main()
            37 {
            38   //  freopen("bottom.in","r",stdin);
            39   //  freopen("ans.txt","w",stdout);
            40     while(1)
            41     {
            42        int i,j;
            43        scanf("%d",&n);
            44        if(!n) break;
            45        scanf("%d",&m);
            46        memset(map,0,sizeof(map));
            47        while(m--)
            48        {
            49           int t1,t2;
            50           scanf("%d%d",&t1,&t2);
            51           map[t1][t2]=1;
            52        }
            53        dfn=cn=top=rc=0;
            54        memset(id,-1,sizeof(id));
            55        for(i=1;i<=n;i++)
            56          if(id[i]==-1)
            57            dfs(i);
            58        memset(count,1,sizeof(count));
            59        for(i=1;i<=n;i++)
            60         if(count[con[i]])
            61          for(j=1;j<=n;j++)
            62            if(map[i][j]&&con[i]!=con[j])
            63            {
            64               count[con[i]]=0;
            65            }
            66        for(i=0;i<cn;i++)
            67          if(count[i])
            68            {
            69              for(j=1;j<=n;j++)
            70                if(con[j]==i)
            71                   res[rc++]=j;
            72            }
            73        qsort(res,rc,sizeof(int),cmp);
            74        if(rc==0)
            75          printf("\n");
            76        else
            77        {
            78          printf("%d",res[0]);
            79          for(i=1;i<rc;i++)
            80            printf(" %d",res[i]);
            81          printf("\n");
            82        }
            83        
            84     }
            85     return 0;
            86 }
            87 


            posted on 2010-11-07 02:50 yzhw 閱讀(166) 評論(0)  編輯 收藏 引用 所屬分類: graph

            <2010年12月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久精品亚洲乱码伦伦中文 | 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久久精品久久久久影院| 久久人人青草97香蕉| 久久久久久久久久久| 久久99精品综合国产首页| 国产91久久综合| 久久亚洲中文字幕精品一区| 久久久久久狠狠丁香| 亚洲欧美日韩中文久久| 91精品国产91热久久久久福利| 久久天天躁狠狠躁夜夜96流白浆| 精品久久久久久无码中文字幕 | 精品久久久久久久久久久久久久久| 久久精品亚洲乱码伦伦中文| 国产亚洲色婷婷久久99精品| 国内高清久久久久久| 人妻无码久久精品| 99久久国产综合精品网成人影院| 久久久久亚洲精品日久生情| 93精91精品国产综合久久香蕉| 久久精品国产亚洲AV不卡| 成人国内精品久久久久影院VR| 色综合久久无码五十路人妻| 国产精品嫩草影院久久| 久久久久99精品成人片欧美| 久久夜色精品国产噜噜麻豆| 亚洲精品成人久久久| 久久久久久久综合日本| 亚洲国产成人久久综合碰碰动漫3d| 99久久精品免费看国产一区二区三区| 国产成人精品久久| 亚洲狠狠综合久久| 国产91久久综合| 精品久久久久久国产免费了| 国产亚州精品女人久久久久久 | 99久久99久久精品免费看蜜桃| 久久国产精品成人片免费| 久久成人小视频| 国产成人精品久久| 亚洲AV无码久久精品蜜桃|