hdu-1054-Strategic Game

来源:互联网 发布:匹配域名的正则表达式 编辑:程序博客网 时间:2024/05/16 01:47
#include<cstdio>#include<iostream>#include<string.h>#include<algorithm>#include<stdlib.h>#include<math.h>#include<vector>#include<iomanip>using namespace std;int dp[1550][2];vector<int> f[1550];int p[1550];void dfs(int v){    if(f[v].size()==0)    {        dp[v][0]=0;        dp[v][1]=1;    }    else    {        int i;        for(i=0;i<f[v].size();i++)        {            int u=f[v][i];            dfs(u);            dp[v][0]+=dp[u][1];            dp[v][1]+=min(dp[u][0],dp[u][1]);        }        dp[v][1]++;    }}int main(){    int i,j;    int n;    while(scanf("%d",&n)!=EOF)    {        int nn=n;        memset(p,0,sizeof(p));        memset(dp,0,sizeof(dp));        for(i=0;i<=n;i++)            f[i].clear();        while(n--)        {            int t1,m;            scanf("%d:(%d)",&t1,&m);            while(m--)            {                int t2;                cin>>t2;                f[t1].push_back(t2);                p[t2]=1;            }        }        int k;        for(i=0;i<nn;i++)            if(p[i]==0)            {                k=i;                break;            }        dfs(k);        printf("%d\n",min(dp[k][0],dp[k][1]));    }        //system("pause");}

0 0