• POJ 1236 强联通分量


    链接:

    http://poj.org/problem?id=1236

    代码:

    31 int index = 0;
    32 int low[MAXN], dfn[MAXN];
    33 int vis[MAXN], bel[MAXN];
    34 VI G[MAXN];
    35 stack<int> S;
    36 int scc_cnt;
    37 
    38 void tarjan(int u) {
    39     dfn[u] = low[u] = ++index;
    40     S.push(u); vis[u] = 1;
    41     rep(i, 0, G[u].size()) {
    42         int v = G[u][i];
    43         if (!dfn[v]) {
    44             tarjan(v);
    45             low[u] = min(low[u], low[v]);
    46         }
    47         else if (vis[v]) low[u] = min(low[u], dfn[v]);
    48     }
    49     if (low[u] == dfn[u]) {
    50         scc_cnt++;
    51         while (1) {
    52             int now = S.top(); S.pop();
    53             vis[now] = 0;
    54             bel[now] = scc_cnt;
    55             if (now == u) break;
    56         }
    57     }
    58 }
    59 
    60 int n;
    61 int in[MAXN], out[MAXN];
    62 
    63 void scc() {
    64     index = scc_cnt = 0;
    65     memset(dfn, 0, sizeof(dfn));
    66     rep(i, 0, n) if (!dfn[i]) tarjan(i);
    67 }
    68 
    69 int main() {
    70     cin >> n;
    71     int a;
    72     rep(i, 0, n) while (cin >> a, a) G[i].pb(a - 1);
    73     scc();
    74     if (scc_cnt == 1) {
    75         cout << 1 << endl << 0 << endl;
    76         return 0;
    77     }
    78     rep(u, 0, n) rep(i, 0, G[u].size()) {
    79         int v = G[u][i];
    80         if (bel[u] != bel[v]) {
    81             out[bel[u]]++;
    82             in[bel[v]]++;
    83         }
    84     }
    85     int in_tot = 0, out_tot = 0;
    86     rep(i, 1, scc_cnt + 1) {
    87         if (!in[i]) in_tot++;
    88         if (!out[i]) out_tot++;
    89     }
    90     cout << in_tot << endl << max(in_tot, out_tot) << endl;
    91     return 0;
    92 }
  • 相关阅读:
    MVC设计模式和三层架构
    Servlet使用反射机制
    JSP的工作原理
    Servlet相关的几种乱码
    Word发送至博客园
    使用为知笔记上传到博客园
    idea乱码问题
    Servlet快速入门及运行流程
    【转】SQL注入及mybatis中#{}和${}的区别
    我的这个时代与你们
  • 原文地址:https://www.cnblogs.com/baocong/p/6754613.html
Copyright © 2020-2023  润新知