zoukankan      html  css  js  c++  java
  • HDOJ1285 比赛排名(拓扑排序)

    拓扑排序(适用于有向无环图):

    1)选一个入度为0的点p输出;

    2)从图中删除p点

    3)将p全部后继点的入度-1

    4)重复1-3,直到全部点都输出

    题目:

    1285 确定比赛名次
     1 /*
     2 需要一个存入度的数组indegree[]
     3 用邻接矩阵存储图
     4 Map[i][j] = 1表示有从i到j的边,及i是j的前驱结点
     5 */
     6 #include <iostream>
     7 #include <cstdio>
     8 #include <cstring>
     9 using namespace std;
    10 
    11 #define N 505
    12 int Map[N][N],indegree[N];
    13 int n,m,cnt;
    14 
    15 void main()
    16 {
    17     int i,a,b,idx;
    18     while (scanf("%d%d",&n,&m)!=EOF)//n个队伍、m条数据
    19     {
    20         //初始化
    21         memset(Map,0,sizeof(Map));
    22         memset(indegree,0,sizeof(indegree));
    23         //读取图
    24         for (i=0 ; i<m ; i++)
    25         {
    26             cin>>a>>b;
    27             if (!Map[a-1][b-1])//避免重复边
    28             {
    29                 Map[a-1][b-1] = 1;
    30                 indegree[b-1]++;
    31             }
    32         }
    33         //拓扑排序
    34         cnt = 0;
    35         while (cnt<n)//入栈的元素为n个表示全部排完了。
    36         {
    37             //找一个入度为0的点idx
    38             for (idx=0 ; indegree[idx] != 0 ; idx++);
    39             //避免再次统计idx点,把入度改为-1
    40             indegree[idx] = -1;
    41             //所有idx的后继结点入度-1
    42             for (i=0;i<n;i++)
    43             {
    44                 if (Map[idx][i] == 1)    indegree[i]--;
    45             }
    46             cout<<idx+1<<" ";
    47             cnt++;
    48         }
    49         cout<<endl;
    50     }
    51 }
    字节跳动内推

    找我内推: 字节跳动各种岗位
    作者: ZH奶酪(张贺)
    邮箱: cheesezh@qq.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    论登陆博客园的时候忘记了密码
    LNOI 2019 旁观记
    [bzoj3790] 神奇项链
    [POI2000] 病毒
    [HAOI2008] 移动玩具
    [codevs1288] 埃及分数
    [hdu1401] Solitaire
    [洛谷P3806] [模板] 点分治1
    [国家集训队] 聪聪可可
    [洛谷P4178] Tree
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/2717403.html
Copyright © 2011-2022 走看看