#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
int visited[101];
vector<int> edge[101];
bool nocycle=true;
void dfs(int k)
{
visited[k]=1;
for(int i=0;i<edge[k].size();i++)
{
if(visited[edge[k][i]])
{
nocycle=false;
return;
}
dfs(edge[k][i]);
}
visited[k]=0;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int tmp;
cin>>tmp;
while(tmp--)
{
int l;
cin>>l;
edge[i].push_back(l);
}
}
for(int i=1;i<=n;i++)
{
memset(visited, 0, sizeof(visited));
dfs(i);
}
cout<<(nocycle?1:0)<<endl;
return 0;
}6-06. 任务调度的合理性(25)
最新推荐文章于 2026-06-16 10:42:48 发布
本文介绍了一种使用深度优先搜索算法检测图中环路的方法,并通过实例展示了如何实现并验证算法的有效性。
&spm=1001.2101.3001.5002&articleId=44124331&d=1&t=3&u=63588a89e05140a2958a95cf23aaa207)
1289

被折叠的 条评论
为什么被折叠?



