zoukankan      html  css  js  c++  java
  • 图论——topsort

    今天学习topsort,明天强联通分量。topsort是一种在DAG(有向无环图)中来制定顺序的方法,从入度为0开始一个一个编排顺序直至所有的边都有了顺序(或者形成了环)最后如果图中还剩下元素那一定是个环,所以topsort还可以用来判环。今天打了到topsort的例题如下。

    这道题的意思就是说按一定顺序来做题入度一样的题可以一起做,看需要多长的时间,a所有的题都只要1min所以要初始化入度为0的题都需要1min,下面给出代码(打了两遍 ,都错在同一个地方我也真是orz了)。这个地方十分的神奇,好吧其实不神奇自己不认真,这个题的题目开始是从0开始的但我的tail加是从一开始最后便利的时候i从0到<n导致一直wa了一个点真不细心啊。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<ctime>
    #include<cmath>
    #include<algorithm>
    #include<iomanip>
    #include<vector>
    #include<queue>
    #include<stack>
    #include<map>
    using namespace std;
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    struct bwy
    {
        int v,id;
    }q[500];
    int n,m;
    int ans=0;
    int a[500][500],b[5090],now[500],t=0;;
    int main()
    {
        //freopen("1.in","r",stdin);
        n=read();m=read();
        for(int i=1;i<=m;i++)
        {
            int x,y,z;
            x=read();y=read();z=read();
            a[x][y]=z;
            b[y]++;
        }
        for(int i=0;i<n;i++)
        {
            if(b[i]==0)
            {
                q[++t].id=i;
                q[t].v=1;
            }
        }
        for(int j=1;j<=t;j++)
        {
            for(int i=0;i<n;i++)
            {
                if(a[q[j].id][i]!=0)
                {                                                 
                    b[i]--;
                    now[i]=max(now[i],a[q[j].id][i]+q[j].v);
                    if(b[i]==0)
                    {
                        q[++t].id=i;
                        q[t].v=now[i];
                    }
                }
            }
        }
        for(int i=1;i<=t;i++)
        {
            ans=max(ans,q[i].v);
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code

    完事。

    谁翻乐府凄凉曲,风也萧萧,雨也萧萧,瘦尽灯花又一宵。

  • 相关阅读:
    docker 安装mysql
    Java web项目搭建系列之二 Jetty下运行项目
    Java web项目搭建系列之一 Eclipse中新建Maven项目
    Maven 添加其他Maven组件配置问题
    C# 中定义扩展方法
    Oracle 函数
    【Webservice】2 counts of IllegalAnnotationExceptions Two classes have the same XML type name
    Linux精简版系统安装网络配置问题解决
    Rsync 故障排查整理
    Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.
  • 原文地址:https://www.cnblogs.com/chdy/p/9680209.html
Copyright © 2011-2022 走看看