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

ArcTan

dfs
隨筆 - 16, 文章 - 117, 評論 - 6, 引用 - 0
數據加載中……

POJ 2762-Tarjan + 拓撲排序

題意:給定無向圖,判斷是否任何兩點(x,y),可以從x到y或者從y到x.
         The son can either go from x to y, or from y to x.

思路:Tarjan縮點后,充要條件是,成一條鏈。拓撲排序求判斷之。

#include<stdio.h>
#include
<string.h>
#include
<math.h>
#define maxn 1010
#define maxm 60600


struct edge{
    
int v;
    
int next;
}edges[maxm];
int last[maxn];
int edge_cnt;
void add_edge(int u,int v)
{
    edges[edge_cnt].v 
= v;
    edges[edge_cnt].next 
= last[u];
    last[u] 
= edge_cnt++;
    
return ;
}



int dfn[maxn],low[maxn];
int color[maxn];
bool instack[maxn];
int st[maxn],top;
int cnt,scnt;



int n,m;
int N;
int mat[maxn][maxn];
int topo[maxn];
int dg[maxn];
int path[maxn];


int min(int x,int y)
{
    
return x<y?x:y;
}
void tarjan(int u)
{
    dfn[u]
=low[u]=cnt++;
    st[
++top]=u;
    instack[u]
=1;
    
for (int j=last[u];j!=-1;j=edges[j].next)
    {
        
int v = edges[j].v;
        
if (dfn[v]==-1)
        {
            tarjan(v);
            low[u]
=min(low[u],low[v]);
        }
        
else if (instack[v])
            low[u]
=min(low[u],low[v]);
    }

    
if (low[u]==dfn[u])
    {
        scnt
++;
        
int x;
        
do
        {
            x
=st[top--];
            instack[x]
=0;
            color[x]
=scnt;
        }
while (x!=u);
    }
    
return ;
}
void solve()
{
    cnt 
= 0;
    scnt 
= 0;
    top 
= 0;
    memset(dfn,
-1,sizeof(dfn));  //初始這里居然錯了。
    memset(instack,
0,sizeof(instack));
    
for (int i=1;i<=n;i++)
        
if (dfn[i]==-1)
            tarjan(i);
    
return ;
}



void init()
{
    memset(last,
-1,sizeof(last));
    edge_cnt 
= 0;
    scanf(
"%d%d",&n,&m);
    
for (int i=1;i<=m;i++)
    {
        
int u,v;
        scanf(
"%d%d",&u,&v);
        add_edge(u,v);
    }
    
return ;
}
void work()
{
    solve();
    N 
= scnt;//求出的強連通數
    memset(mat,0,sizeof(mat));
    
for (int i=1;i<=n;i++)
    {
        
for (int j=last[i];j!=-1;j=edges[j].next)
        {
            
int v = edges[j].v;
            mat[color[i]][color[v]]
=1;
        }
    }

    return ;
}


bool topsort()
{
    memset(dg,
0,sizeof(dg));
    
for (int i=1;i<=N;i++)
        
for (int j=1;j<=N;j++)
            
if (i!=j)//注意自己到自己不可。當是就在這里WA了!
                dg[i] 
+= mat[j][i];
    
for (int k=1;k<=N;k++)
    {
        
int i=1;
        
while (dg[i]>0 && i<=n) i++;
        
if (i>n)
            
return 0;
        dg[i]
=-1;
        
for (int j=1;j<=N;j++)
            dg[j]
-=mat[i][j];
        path[k]
=i;
    }
    
return 1;
}
int main()
{
    
int cas;
    scanf(
"%d",&cas);
    
while (cas--)
    {
        init();
        work();
        
bool flag = 1;
        topsort();
        
for (int i=1;i<N;i++)
        {
            
if (!mat[path[i]][path[i+1]])
            {
                flag 
= 0;
                
break;
            }
        }
        
if (flag)
            puts(
"Yes");
        
else
            puts(
"No");
    }
    
return 0;
}

/*

3 3
1 2
2 3
3 1

8 11
1 2
2 3
2 5
2 6
3 5
4 3
5 2
5 4
6 7
6 8
7 6

*/


posted on 2012-10-17 17:22 wangs 閱讀(301) 評論(0)  編輯 收藏 引用 所屬分類: ACM-圖論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲免费不卡| 久久久久久69| 国产精品日韩在线一区| 欧美黄在线观看| 欧美成人午夜免费视在线看片| 欧美一区二区精美| 欧美在线三区| 欧美成人一区在线| 国产精品第十页| 欧美电影在线观看完整版| 亚洲精品久久嫩草网站秘色 | 久久久久国产精品www| 久久精品日产第一区二区| 久久久精品国产一区二区三区 | 亚洲免费播放| 亚洲永久免费观看| 久久久夜夜夜| 91久久精品日日躁夜夜躁国产| 日韩一级欧洲| 欧美中文日韩| 国产欧美日韩视频在线观看| 国产综合色产在线精品| 国产丝袜一区二区| 亚洲高清不卡| 在线中文字幕日韩| 久久麻豆一区二区| 亚洲精品小视频在线观看| 亚洲愉拍自拍另类高清精品| 久久精品一区二区三区四区| 欧美精品 国产精品| 国产欧美日韩视频在线观看| 亚洲精品国产欧美| 久久精品国产精品亚洲| 亚洲国产日韩综合一区| 午夜日韩福利| 欧美日韩一区二区三| 欧美在线视频一区二区| 亚洲午夜未删减在线观看| 久久激情视频久久| 欧美日韩成人精品| 国产一区二区三区久久精品| 亚洲老板91色精品久久| 久久黄金**| 亚洲图中文字幕| 欧美激情黄色片| 国内自拍亚洲| 久久aⅴ乱码一区二区三区| 亚洲精品国产欧美| 美女亚洲精品| 亚洲国产精品www| 噜噜爱69成人精品| 欧美一级日韩一级| 欧美精品日韩| 国产精品综合av一区二区国产馆| 最新日韩在线视频| 免费亚洲网站| 麻豆视频一区二区| 狠狠久久五月精品中文字幕| 欧美一二三视频| 一区二区三区www| 国产精品a久久久久久| 夜夜爽99久久国产综合精品女不卡| 久久亚洲不卡| 久久亚洲春色中文字幕久久久| 国产一区二区三区四区| 久久精品日韩欧美| 久久精品国产清高在天天线| 国产一区自拍视频| 免费观看日韩av| 免费在线欧美视频| 亚洲美女中出| 亚洲天堂av图片| 国产伦精品一区二区三区高清| 午夜欧美理论片| 欧美一区二区在线视频| 伊人精品视频| 亚洲区第一页| 国产精品美女久久久久久2018| 午夜视频久久久| 久久国产精品网站| 亚洲精品国产精品国产自| 91久久国产精品91久久性色| 欧美激情第8页| 亚洲综合国产激情另类一区| 亚洲欧美日韩综合| 一区在线影院| 亚洲狼人综合| 国产真实精品久久二三区| 久久久最新网址| 欧美日韩不卡合集视频| 欧美一区永久视频免费观看| 久久久精品国产免大香伊 | 亚洲免费在线视频| 午夜国产欧美理论在线播放 | 国产精品久久二区| 久久五月天婷婷| 欧美精品www| 久久精品国亚洲| 欧美va亚洲va日韩∨a综合色| 亚洲神马久久| 久久久视频精品| 亚洲综合欧美| 久久亚洲精品视频| 午夜精品区一区二区三| 久久一区中文字幕| 性色av一区二区三区| 免费日韩成人| 久久久久久亚洲精品中文字幕| 欧美精品videossex性护士| 欧美亚洲日本网站| 欧美精品v国产精品v日韩精品| 久久久久91| 国产精品日韩一区二区三区| 91久久黄色| 91久久精品国产91久久性色| 午夜激情综合网| 一本色道久久88精品综合| 久久久久久穴| 久久免费高清| 国产综合久久久久久| 亚洲午夜小视频| 亚洲小说欧美另类社区| 欧美福利专区| 亚洲高清视频在线观看| 在线国产欧美| 狂野欧美性猛交xxxx巴西| 欧美精品一区二区三区在线看午夜| 欧美成人久久| 久久亚洲私人国产精品va媚药| 欧美经典一区二区三区| 欧美黄网免费在线观看| 激情综合网激情| 欧美一进一出视频| 欧美一区二区性| 国产精品综合| 亚洲自拍电影| 欧美xx69| 国产精品二区在线观看| 亚洲免费av观看| 野花国产精品入口| 欧美激情免费观看| 91久久国产综合久久| 亚洲麻豆av| 欧美日韩成人综合在线一区二区| 亚洲第一区中文99精品| 亚洲国产一区二区三区高清 | 一本大道久久精品懂色aⅴ| 欧美国产激情二区三区| 亚洲人成网站777色婷婷| 亚洲三级网站| 国产精品xxxxx| 欧美一区二区三区免费观看视频| 久久成人在线| 亚洲国产精品成人一区二区 | 欧美劲爆第一页| 99精品国产高清一区二区| 亚洲视频一区在线观看| 国产精品日韩久久久| 欧美一区深夜视频| 免费在线观看日韩欧美| 最近看过的日韩成人| 欧美精品一区二区三区久久久竹菊 | 欧美一区二区成人6969| 欧美专区在线| 在线欧美影院| 欧美日韩视频在线| 欧美亚洲自偷自偷| 亚洲国产日日夜夜| 欧美综合国产精品久久丁香| 伊人久久久大香线蕉综合直播| 美女精品在线观看| 亚洲午夜精品国产| 亚洲高清视频一区| 久久国产精品亚洲77777| 亚洲激情小视频| 国产精品揄拍一区二区| 久久五月激情| 亚洲精品久久久一区二区三区| 久久精品国产在热久久| 蜜臀99久久精品久久久久久软件| 亚洲电影免费观看高清| 欧美激情精品久久久久久变态| 在线一区亚洲| 欧美 日韩 国产一区二区在线视频| 亚洲精品影院在线观看| 国产精品在线看| 欧美日韩精品国产| 久久久亚洲国产天美传媒修理工| 亚洲免费观看高清在线观看 | 欧美日韩一区二区高清| 欧美激情在线狂野欧美精品| 亚洲精品三级| 经典三级久久| 欧美一级夜夜爽| 亚洲精选视频免费看| 美女脱光内衣内裤视频久久影院 | 欧美 亚欧 日韩视频在线| 亚洲午夜在线视频| 亚洲精品视频二区| 一区一区视频|