#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)
最新推荐文章于 2022-06-01 11:35:17 发布