78
2025-08-16 17:18:57
发布于:浙江
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
long long n,ans=11451478,m,dp[1505][5],cnt[1505],a,b,x;
vector<long long>v[1505];
void _find(long long x){
dp[x][1]=1;
for(int i=0;i<v[x].size();i++){
_find(v[x][i]);
dp[x][0]+=dp[v[x][i]][1];
dp[x][1]+=min(dp[v[x][i]][0],dp[v[x][i]][1]);
}
return;
}
int main(){
cin>>n;
if(n==0){
cout<<0;
return 0;
}
for(int i=1;i<n;i++){
scanf("%d:(%d)",&a,&b);
for(int j=0;j<b;j++){
cin>>x;
cnt[x]++;
v[a].push_back(x);
}
}
for(int i=0;i<n;i++){
if(cnt[i]==0){
m=i;
break;
}
}
_find(m);
cout<<min(dp[m][0],dp[m][1]);
return 0;
}
这里空空如也
有帮助,赞一个