zoukankan      html  css  js  c++  java
  • poj-2367-拓扑排序-水

    今天重温了一下拓扑排序,做道水题开个头。思路就不写了,很暴力。

    AC代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <queue>
     4 #include <vector>
     5 #include <cstring>
     6 using namespace std;
     7 int arr[109][109];
     8 bool vis[109], inq[109];
     9 int n;
    10 queue<int> anse;
    11 void init()
    12 {
    13     memset(vis, 0, sizeof(vis));
    14     memset(inq, 0, sizeof(inq));
    15     memset(arr, 0, sizeof(arr));
    16     int a;
    17     for(int i = 1; i <= n; i++) {
    18         while(scanf("%d", &a) && a ) {
    19             arr[i][a] = 1;
    20             vis[a] = 1;
    21         }
    22     }
    23     for(int i = 1; i <= n; i++) {
    24         if(!vis[i]) {
    25             anse.push(i);
    26             for(int j = 1; j <= n; j++) {
    27                 arr[i][j] = 0;
    28             }
    29             inq[i] = 1;
    30         }
    31     }
    32 }
    33 void findhead()
    34 {
    35     for(int i = 1; i <= n; i++) {
    36         int flag = 0;
    37         if(!inq[i]) {
    38             for(int j = 1; j <= n; j++) {
    39                 if(arr[j][i] == 1) { flag = 1; break;}
    40             }
    41             if(!flag) {
    42                 anse.push(i);
    43                 for(int j = 1; j <= n; j++) {
    44                     arr[i][j] = 0;
    45                 }
    46                 inq[i] = 1;
    47             }
    48         }
    49     }
    50 }
    51 void work()
    52 {
    53     init();
    54     while(anse.size() < n) {
    55         findhead();
    56     }
    57     printf("%d", anse.front());
    58     anse.pop();
    59     while(!anse.empty()) {
    60         printf(" %d", anse.front());
    61         anse.pop();
    62     }
    63     printf("
    ");
    64 }
    65 int main()
    66 {
    67     while(scanf("%d", &n) != EOF) work();
    68     return 0;
    69 }
  • 相关阅读:
    移动页面HTML5自适应手机屏幕宽度
    “流式”前端构建工具——gulp.js 简介
    HDU2602-Bone Collector
    HDU3535-AreYouBusy
    HDU1712-ACboy needs your help
    HDU3496-Watch The Movie
    HDU1171-Big Event in HDU
    POJ2533-Longest Ordered Subsequence
    HDU2084-数塔
    HDU2023-求平均成绩
  • 原文地址:https://www.cnblogs.com/ZiningTang/p/3979556.html
Copyright © 2011-2022 走看看