zoukankan      html  css  js  c++  java
  • 【luogu P1137 旅行计划】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1137
    topsort + DP

    #include <queue>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int maxn = 100001;
    struct edge{
        int next, from, to;
    }e[maxn<<2];
    int head[maxn], cnt, indrg[maxn], f[maxn], n, m;
    queue<int> q;
    void add(int u, int v)
    {
        e[++cnt].to = v;
        e[cnt].next = head[u];
        head[u] = cnt;
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i = 1; i <= m; i++)
        {
            int u,v;
            scanf("%d%d",&u,&v);
            add(u,v);
            indrg[v]++;
        }
        for(int i = 1; i <= n; i++)
        if(indrg[i] == 0)
        {
            f[i] = 1;
            q.push(i);
        }
    
        while(!q.empty())
        {
            int now = q.front(); q.pop();
            for(int i = head[now]; i; i = e[i].next)
            {
                f[e[i].to] = max(f[e[i].to], f[now]+1);
                if(--indrg[e[i].to] == 0) q.push(e[i].to);  
            }
        }
        for(int i = 1; i <= n; i++)
        printf("%d
    ",f[i]);
        return 0;
    }
    

    隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。

    隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。

  • 相关阅读:
    docker入门
    初级排序算法1-定义排序规则
    Lambda入门
    mac编辑器vim美化
    SSM搭建
    Memcached安装教程及使用
    lombok
    立个Flag-第一天
    等高线自适应分割
    wpf软件模拟鼠标键盘操作
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/9212624.html
Copyright © 2011-2022 走看看