赞
踩
https://www.luogu.com.cn/problem/P2016
思路:类似上司的舞会
- #include<iostream>
- #include<vector>
- #include<queue>
- #include<cstring>
- #include<cmath>
- #include<map>
- #include<set>
- #include<cstdio>
- #include<algorithm>
- #define debug(a) cout<<#a<<"="<<a<<endl;
- using namespace std;
- const int maxn=2e3+100;
- typedef long long LL;
- inline LL read(){LL x=0,f=1;char ch=getchar(); while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
- return x*f;}
- vector<LL>g[maxn];
- LL dp[maxn][2];
- void dfs(LL u,LL fa){
- dp[u][1]=1;
- dp[u][0]=0;
- for(LL i=0;i<g[u].size();i++){
- LL v=g[u][i];
- if(v==fa) continue;
- dfs(v,u);
- dp[u][1]+=min(dp[v][0],dp[v][1]);
- dp[u][0]+=dp[v][1];
- }
- }
- int main(void){
- cin.tie(0);std::ios::sync_with_stdio(false);
- LL n;cin>>n;
- for(LL i=1;i<=n;i++){
- LL id;cin>>id;
- id++;
- LL m;cin>>m;
- for(LL j=1;j<=m;j++){
- LL v;cin>>v;v++;
- g[id].push_back(v);
- g[v].push_back(id);
- }
- }
- dfs(1,0);
- cout<<min(dp[1][1],dp[1][0])<<"\n";
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。