zoukankan      html  css  js  c++  java
  • hdu 1285 确定比赛名次

    题意:给出每两个队伍的胜负关系,求排名。

    思路:裸裸的拓扑排序。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int n,m,p1,p2;
    int indegree[500010],match[505][505],flag;
    void tuopu()
    {
        int i,j,k,flag=0;
        for(j=1;j<=n;j++)
        for(i=1;i<=n;i++)
        {
            if(indegree[i]==0)
            {
                if(flag==0)
                printf("%d",i),flag++;
                else printf(" %d",i);
                indegree[i]=-1;
                for(k=0;k<=n;k++)
                {
                    if(match[i][k]==1) indegree[k]--;
                }
                break;//一定要break掉
            }
        }
        printf("
    ");
    }
    int main()
    {
        int i,j,k;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            memset(match,0,sizeof(match));
            memset(indegree,0,sizeof(indegree));
            for(i=0;i<m;i++)
            {
                scanf("%d%d",&p1,&p2);
                if(match[p1][p2]==0)
                {
                    indegree[p2]++;
                    match[p1][p2]=1;
                }
            }
            tuopu();
        }
        return 0;
    }
    


  • 相关阅读:
    java 异常练习题1
    java 异常练习题
    java 抽象类
    java 接口练习题6
    java 接口练习题5
    java 接口练习题4
    java 接口练习题3
    java接口练习题2
    java 接口练习题1
    java 泛型
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6788779.html
Copyright © 2011-2022 走看看