不用管
2025-06-22 17:19:21
发布于:四川
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> ve[105],to;
int IND[105],t[105],ans;
vector<int> Topo_sort(){
queue<int> q;
for (int i=1;i<=n;i++){
if (!IND[i]){
q.push(i);
}
}
while (!q.empty()){
int u=q.front();
to.push_back(u);
q.pop();
for (int i=0;i<ve[u].size();i++){
int k=ve[u][i];
IND[k]--;
if (!IND[k]) q.push(k);
}
}
return to;
}
int main(){
cin>>n;
for (int i=1;i<=n;i++){
int k;
cin>>k>>m;
for (int j=1;j<=m;j++){
int x;
cin>>x;
if (x>n) continue;
IND[x];
ve[k].push_back(x);
}
}
// for (int i=1;i<=n;i){
// cout<<IND[i]<<' ';
// }
vector<int> q=Topo_sort();
// cout<<q.size();
for (int i=0;i<q.size();i++){
t[q[i]];
}
for (int i=1;i<=n;i){
if (!t[i]) ans++;
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个