zoukankan      html  css  js  c++  java
  • hdu 3342(拓扑排序)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342

    思路:直接拓扑排序即可。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<queue>
     6 #include<vector>
     7 using namespace std;
     8 bool map[111][111];
     9 vector<int>vet[111];
    10 int from[111];
    11 int n,m;
    12 
    13 void floyd()
    14 {
    15    for(int k=0;k<n;k++)
    16       for(int i=0;i<n;i++)
    17          for(int j=0;j<n;j++)
    18             map[i][j]=(map[i][j]||(map[i][k]&&map[k][j]));
    19 }
    20 
    21 bool Solve()
    22 {
    23    queue<int>Q;
    24    int cnt=0;
    25    for(int i=0;i<n;i++){
    26       if(from[i]==0){ Q.push(i);cnt++; }
    27    }
    28    while(!Q.empty()){
    29       int u=Q.front();
    30       Q.pop();
    31       for(int i=0;i<vet[u].size();i++){
    32          int v=vet[u][i];
    33          if(from[v]>0){
    34             from[v]--;
    35             if(from[v]==0){ Q.push(v);cnt++; }
    36          }
    37       }
    38    }
    39    if(cnt==n)return true;
    40    return false;
    41 }
    42 
    43 
    44 int main(){
    45    int u,v;
    46    while(scanf("%d%d",&n,&m),n){
    47       memset(map,false,sizeof(map));
    48       memset(from,0,sizeof(from));
    49       for(int i=0;i<n;i++)vet[i].clear();
    50       while(m--){
    51          scanf("%d%d",&u,&v);
    52          map[u][v]=true;
    53       }
    54       for(int i=0;i<n;i++)
    55          for(int j=0;j<n;j++)if(i!=j){
    56             if(map[i][j]){ from[j]++;vet[i].push_back(j); }
    57          }
    58       bool flag=Solve();
    59       flag?puts("YES"):puts("NO");
    60    }
    61    return 0;
    62 }
    View Code
  • 相关阅读:
    前端 -- html
    MySQL索引
    Python操作MySQL
    MySQL表操作进阶
    MySQL表操作基础
    Github使用教程
    Android开发面试题
    MYSQL学习记录
    Java开发从零到现在
    JavaWeb(JSP/Servlet/上传/下载/分页/MVC/三层架构/Ajax)
  • 原文地址:https://www.cnblogs.com/wally/p/3122783.html
Copyright © 2011-2022 走看看