• POJ 2367 Genealogical tree


    很耿直的拓扑排序题,就当熟悉一下算法吧。。。

    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<string>
    #include<stack>
    #include<queue>
    #include<map>
    #include<set>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #define FF(i, a, b) for(int i=a; i<b; i++)
    #define FD(i, a, b) for(int i=a; i>b; i--)
    #define REP(i, n) for(int i=0; i<n; i++)
    #define CLR(a, b) memset(a, b, sizeof(a))
    #define LL long long
    
    using namespace std;
    const int maxn = 111;
    int n, v, in[maxn], tot, ans[maxn];
    vector<int> G[maxn];
    
    inline void init()
    {
        REP(i, maxn) G[i].clear(); CLR(in, 0); tot = 0;
    }
    
    inline void add(int u, int v)
    {
        G[u].push_back(v); in[v]++;
    }
    
    void topo()
    {
        queue<int> q;
        FF(i, 1, n+1) if(!in[i]) q.push(i);
        while(!q.empty())
        {
            int u = q.front(); q.pop();
            ans[tot++] = u;
            int nc = G[u].size();
            REP(i, nc)
            {
                int v = G[u][i];
                in[v]--;
                if(!in[v]) q.push(v);
            }
        }
    }
    
    int main()
    {
        while(~scanf("%d", &n))
        {
            init();
            FF(i, 1, n+1) while(scanf("%d", &v), v) add(i, v);
            topo();
            REP(i ,n) printf("%d%c", ans[i], i == n-1 ? '
    ' : ' ');
        }
        return 0;
    }
    


  • 相关阅读:
    IE9的兼容性
    element 弹框关闭报错
    时间选择器moment格式化存在时差问题
    项目常见bug
    函数封装——函数封装——函数封装
    element-ui 日期选择器范围时间限制
    vue + element 创建教程
    Html基础学习
    HTML、PHP、CSS、JS之间的关系
    vs连接MySQL
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3201423.html
Copyright © 2020-2023  润新知