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

    完事。

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

  • 相关阅读:
    after() 和 remove() 实现替换
    jquery not() 方法
    jQuery filter() , end()
    jquery 拓展函数集
    window onload || jquery $()
    java jdk environment variables
    mysql 64 zip download
    闭包初探
    hdu 1195 Open the Lock (BFS)
    poj 1743 Musical Theme (后缀数组+二分法)
  • 原文地址:https://www.cnblogs.com/chdy/p/9680209.html
Copyright © 2011-2022 走看看