拓扑排序hdu 3342 Legal or Not
来源:互联网 发布:三星电话交换机编程 编辑:程序博客网 时间:2024/06/06 05:41
Legal or Not
TimeLimit: 2000/1000 MS(Java/Others)Total Submission(s):1446
Problem Description
ACM-DIY is a large QQ group where many excellent acmers gettogether. It is so harmonious that just like a big family. Everyday,many "holy cows" like HH, hh, AC, ZT, lcc, BF, Qinz and so onchat on-line to exchange their ideas. When someone has questions,many warm-hearted cows like Lost will come to help. Then the onebeing helped will call Lost "master", and Lost will have a nice"prentice". By and by, there are many pairs of "master andprentice". But then problem occurs: there are too many masters andtoo many prentices, how can we know whether it is legal ornot?
We all know a master can have many prentices and a prentice mayhave a lot of masters too, it's legal. Nevertheless,some cows arenot so honest, they hold illegal relationship. Take HH and 3xianfor instant, HH is 3xian's master and, at the same time, 3xian isHH's master,which is quite illegal! To avoid this,please help us tojudge whether their relationship is legal ornot.
Please note that the "master and prentice" relation is transitive.It means that if A is B's master ans B is C's master, then A is C'smaster.
We all know a master can have many prentices and a prentice mayhave a lot of masters too, it's legal. Nevertheless,some cows arenot so honest, they hold illegal relationship. Take HH and 3xianfor instant, HH is 3xian's master and, at the same time, 3xian isHH's master,which is quite illegal! To avoid this,please help us tojudge whether their relationship is legal ornot.
Please note that the "master and prentice" relation is transitive.It means that if A is B's master ans B is C's master, then A is C'smaster.
Input
The input consists of several test cases. For each case, the firstline contains two integers, N (members to be tested) and M(relationships to be tested)(2 <= N, M<= 100). Then M lines follow, each contains a pairof (x, y) which means x is y's master and y is x's prentice. Theinput is terminated by N = 0.
TO MAKE IT SIMPLE, we give every one a number (0, 1, 2,..., N-1).We use their numbers instead of their names.
TO MAKE IT SIMPLE, we give every one a number (0, 1, 2,..., N-1).We use their numbers instead of their names.
Output
For each test case, print in one line the judgement of the messyrelationship.
If it is legal, output "YES", otherwise "NO".
If it is legal, output "YES", otherwise "NO".
Sample Input
32
01
12
22
01
10
00
Sample Output
YES
NO
这道题主要就是判断是否能拓扑排序(就是不能构成环),能的话就输出YES,不能侧输出NO。
#include<stdio.h>
#include<string.h>
intflag=1;
intmap[110][110];
void topology(int n)
{
intmark[510];
memset(mark,0,sizeof(mark));
inti,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(map[i][j]==1)
mark[j]++;
}
for(i=0;i<n;i++)
{
j=0;
while(mark[j]!=0) j++;
if(j>=n)
{
flag=0;
break;
}
mark[j]=-1;
for(k=0;k<n;k++)
if(map[j][k]==1)
mark[k]--;
}
if(flag==1)
printf("YES\n");
elseprintf("NO\n");
}
intmain()
{
intn,i,m;
intstart,end;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0)break;
memset(map,0,sizeof(map));
flag=1;
for(i=0;i<m;i++)
{
scanf("%d%d",&start,&end);
map[start][end]=1;
}
}
}
- 拓扑排序hdu 3342 Legal or Not
- (拓扑排序 )hdu 2094 产生冠军
- 拓扑排序 hdu 2647 Reward
- 【拓扑排序】hdu 3342 Legal or Not
- 【HDU】3342 Legal or Not 拓扑排序
- hdu 3342 Legal or Not 拓扑排序
- HDU 3342 Legal or Not (拓扑排序)
- 拓扑排序 HDU 3342 Legal or Not
- hdu 3342 Legal or Not 拓扑排序
- HDU 3342 Legal or Not (拓扑排序)
- HDOJ 2020 绝对值排序
- Lesson 21 Mad or not? 是不是疯了
- Could not find action or result
- HDU 1242 Rescue
-  
- “constructors not allowed …
- (HDU)2527 Safe Or&nbsp…
- (HDU) 3999 The or…
- 阿里巴巴程序设计大赛结题报告
- 黑马程序员------面向对象(No.6)(接口、多态)
- 堆排序 hdu 2020 绝对值排序
- (拓扑排序 )hdu 2094 产生冠军
- 排序
- 拓扑排序hdu 3342 Legal or Not
- 拓扑排序 hdu 2647 Reward
- 【考研数学】数学满分秘籍、考研数…
- 阿牛的EOF牛肉串
- 最短路径问题 hdu 3790
- hdu 2544 最短路(dijkstra算法)
- hdu 1875 最小生成树(prim算法)…
- 那一口人间最温暖的粥啊……——95岁…
- 大整数加法 1002 A + B Problem II