hdu3342 Legal or Not拓扑排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu3342 Legal or Not拓扑排序相关的知识,希望对你有一定的参考价值。


题目链接:​​http://acm.hdu.edu.cn/showproblem.php?pid=3342​​​
题意:有n个人,他们之间有着师徒关系,现在告诉你m组关系(x,y),即x是y的师傅,现在问你这些关系是否出现混乱
解析:题目求解拓扑排序是否有可行解

#include <bits/stdc++.h>
using namespace std;
const int maxn = 105;
vector<int>G[maxn];
int in[maxn];
bool topu(int n)

queue<int>q;
for(int i=0;i<n;i++)

if(!in[i])
q.push(i);

int cnt = 0;
while(!q.empty())

int u = q.front();
q.pop();
cnt++;
for(int i = 0;i<(int)G[u].size();i++)

int v = G[u][i];
if(--in[v]==0)
q.push(v);


return cnt==n;

int main(void)

int n,m;
while(~scanf("%d %d",&n,&m))

if(!n && !m)
break;
memset(in,0,sizeof(in));
for(int i=0;i<n;i++)
G[i].clear();
for(int i=0;i<m;i++)

int x,y;
scanf("%d %d",&x,&y);
G[x].push_back(y);
in[y]++;

if(topu(n))
puts("YES");
else
puts("NO");

return 0;


以上是关于hdu3342 Legal or Not拓扑排序的主要内容,如果未能解决你的问题,请参考以下文章

HDU - 3342Legal or Not(拓扑排序)

HDU 3342 Legal or Not(拓扑排序判环)

hdu3342 Legal or Not拓扑排序

HDU 3342 Legal or Not(拓扑排序判断成环)

hdu 3342 Legal or Not (拓扑排序)

HDU-3342-Legal or Not