赞
踩
[题目通道](战略游戏 - 洛谷)
- #include<bits/stdc++.h>
- using namespace std;
- int n,f[5000][5000],father[5000];
- vector<int> s[5000];
- inline void dfs(int x){
- f[x][0]=0;
- f[x][1]=1;
- if(s[x].size()==0)return;
- for(int i=0;i<s[x].size();i++){
- int y=s[x][i];
- dfs(y);
- f[x][0]+=f[y][1];
- f[x][1]+=min(f[y][1],f[y][0]);
- }
- }
- int main(){
- int n;
- scanf("%d",&n);
- int a,b,z;
- for(int i=1;i<=n;i++){
- scanf("%d%d",&a,&b);
- a++;
- for(int j=1;j<=b;j++){
- scanf("%d",&z);
- z++;
- s[a].push_back(z);
- father[z]=1;
- }
- }
- int root;
- for(int i=1;i<=n;i++){
- if(father[i]==0){
- root=i;
- break;
- }
- }
- dfs(root);
- cout<<min(f[root][0],f[root][1]);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。