比赛 NOIP模拟赛by mzx Day2 评测结果 AAAAAAAAAA
题目名称 森林大礼包 最终得分 100
用户昵称 Extreme°/极致 ° 运行时间 0.983 s
代码语言 C++ 内存使用 5.27 MiB
提交时间 2016-10-20 19:47:14
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int  mod=1e9+7;
int a[100001][11],k[100001],f[100001];
int dfs(int cur)
{
        if(f[cur]!=0)
                return f[cur]%mod;
        if(cur==0)
               return 1;
        for(int j=1;j<=k[cur];j++)
        {
                f[cur]=(f[cur]+dfs(a[cur][j]))%mod;
        }
        return f[cur]%mod;
}
int main()
{
        freopen("three_squirrels.in","r",stdin);
        freopen("three_squirrels.out","w",stdout);
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
                scanf("%d",&k[i]);
                for(int j=1;j<=k[i];j++)
                        scanf("%d",&a[i][j]);
        }
        for(int i=1;i<=n;i++)
        {
                f[i]=dfs(i)%mod;
        }
        printf("%d",f[n]%mod);
        return 0;
}