0pts求调
查看原帖
0pts求调
671925
caotianhao楼主2023/7/18 15:24

提交记录

#include<bits/stdc++.h>
using namespace std;
const int N=1505;
int n,cnt,head[N],dp[N][2],son[N],vis[N];
struct tree{
	int v,nex;
}e[N*2];
void add(int u,int v){
	e[++cnt].v=v;
	e[cnt].nex=head[u];
	head[u]=cnt;
}
int dfs(int u){
	vis[u]=1;
	dp[u][1]++;
	for(int i=head[u];i;i=e[i].nex){
		if(!vis[e[i].v]){
			dfs(e[i].v);
			dp[u][0]+=dp[e[i].v][1];
			dp[u][1]+=min(dp[e[i].v][0],dp[e[i].v][1]);
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int u,k;
		cin>>u>>k;
		for(int j=1;j<=k;j++){
			int v;
			cin>>v;
			add(u,v);
			add(v,u);
		}
	}
	dfs(1);
	cout<<min(dp[1][0],dp[1][1]);
	return 0;
}
2023/7/18 15:24
加载中...