数据结构实验之图论十:判断给定图是否存在合法拓扑序列
来源:互联网 发布:sql基础教程 编辑:程序博客网 时间:2024/05/16 04:05
数据结构实验之图论十:判断给定图是否存在合法拓扑序列
Time Limit: 1000MSMemory Limit: 65536KB
SubmitStatistic
Problem Description
给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。
Input
输入包含多组,每组格式如下。
第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n<=10)
后面m行每行两个整数a b,表示从a到b有一条有向边。
Output
若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。
Example Input
1 02 21 22 1
Example Output
YESNO
Hint
#include<bits/stdc++.h>
using namespace std;
int s[15][15], vist[15], du[15];
int n, m, cnt;
void create(int m)
{
int u, v;
while(m--)
{
cin>>u>>v;
s[u][v] = 1;
du[v]++;
}
}
void f(int n)
{
int i, j, k;
for(i = 1; i <= n; i++)
{
for(j = 1; j <= n; j++)
{
if(du[j] == 0 && !vist[j])
{
vist[j] = 1;
cnt--;
for(k = 1; k <= n; k++)
{
if(s[j][k])
du[k]--;
}
break;
}
}
}
}
int main()
{
while(cin>>n>>m)
{
memset(s,0,sizeof(s));
memset(vist,0,sizeof(vist));
memset(du,0,sizeof(du));
cnt = n;
create(m);
f(n);
if(cnt == 0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
using namespace std;
int s[15][15], vist[15], du[15];
int n, m, cnt;
void create(int m)
{
int u, v;
while(m--)
{
cin>>u>>v;
s[u][v] = 1;
du[v]++;
}
}
void f(int n)
{
int i, j, k;
for(i = 1; i <= n; i++)
{
for(j = 1; j <= n; j++)
{
if(du[j] == 0 && !vist[j])
{
vist[j] = 1;
cnt--;
for(k = 1; k <= n; k++)
{
if(s[j][k])
du[k]--;
}
break;
}
}
}
}
int main()
{
while(cin>>n>>m)
{
memset(s,0,sizeof(s));
memset(vist,0,sizeof(vist));
memset(du,0,sizeof(du));
cnt = n;
create(m);
f(n);
if(cnt == 0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
阅读全文
2 0
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 2140 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- Don't Let Linux Control Groups Run Uncontrolled
- Java NIO解析
- 这绝对是有史以来最详细的web前端学习路线
- c++ primer 读书笔记三
- HDOJ1194 Beat the Spread!
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 网络流(最大流,最小割)基础入门详解
- Leetcode:Palindrome Partitioning & Palindrome Partitioning II
- BZOJ3223: Tyvj 1729 文艺平衡树(洛谷P3391)
- 让你的.vue文件在sublime text 3 中变成彩色?Vue Syntax Highlight
- 文件与流简介(1)
- floor
- 文章标题
- 加密与解密