• 最简单的拓扑排序


    ( 纯属个人胡猜乱蒙 , 切勿信以为真 )拓扑排序 , 实际上的思想 我感觉还是建树 和 吝啬的国度 的  建图过程应该是差不多的 , 然后就去 vector 建图了 , 结果一段时间 没有这样做过 现在  建好之后不能用就懵逼了 .......  先付上简单二维数组解决   一会再去试试  vector 解决

     

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 #include<iostream>
     5 #include<algorithm>
     6 #include<queue>
     7 #include<vector>
     8 #include<set>
     9 #include<stack>
    10 #include<string>
    11 #include<sstream>
    12 #include<map>
    13 #include<cctype>
    14 using namespace std;
    15 int n,m,visited[505],result[505],a[505][505];
    16 void topsort()
    17 {
    18     for(int i=1;i<=n;i++)
    19     {
    20         int j=1;
    21         while(visited[j]!=0)   //  找一个没爹的
    22             j++;
    23         result[i]=j;      //   存起来
    24         visited[j]--;           // 干掉 他爹
    25         for(int k=1;k<=n;k++)
    26         {
    27             if(a[j][k])         //  检查一下  他爹 都有那些孩子  将孩子的  爹爹数 -1
    28                 visited[k]--;
    29         }
    30     }
    31 }
    32 int main()
    33 {
    34     while(scanf("%d%d",&n,&m)!=EOF)
    35     {
    36         memset(visited,0,sizeof(visited));
    37         memset(a,0,sizeof(a));
    38         for(int i=0;i<m;i++)
    39         {
    40             int b,c;
    41             scanf("%d%d",&b,&c);
    42             if(a[b][c]==0)    //   防止 出现  重边的情况
    43             {
    44                 a[b][c]=1;           //  儿子和爹 配了一套了    下次还是 儿子或者是爹的话   另一个 就不能一样了
    45                 visited[c]++;   //  用于记录每一个点的  有几个爹
    46             }
    47         }
    48         topsort();
    49         for(int i=1;i<n;i++)
    50             printf("%d ",result[i]);
    51         printf("%d
    ",result[n]);
    52     }
    53     return 0;
    54 }

     用vector的话......

     

  • 相关阅读:
    JavaScript获取http,http://请求协议头,域名,端口,url
    JAVA Pattern正则获取大括号中内容,substring字符串截取获取大括号中内容
    系统时间相关
    简单搭建nfs
    电信电话相关
    windows常用设置
    sort用法
    vim查询替换相关
    vim常用命令 技巧
    编绎vim8.2+deepin v15.11
  • 原文地址:https://www.cnblogs.com/A-FM/p/5363688.html
Copyright © 2020-2023  润新知