记录编号 326601 评测结果 AAAAAAAAAA
题目名称 森林大礼包 最终得分 100
用户昵称 Gravatarsxysxy 是否通过 通过
代码语言 C++ 运行时间 1.334 s
提交时间 2016-10-21 10:45:16 内存使用 2.31 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <cstdarg>
#include <algorithm>
#include <queue>
#include <vector>
#include <list>
#include <cstring>
using namespace std;
#define MAXN 100003
#define MOD 1000000007
typedef long long LL;
LL w[MAXN];
bool vis[MAXN];
vector<int> G[MAXN];
LL dfs(int u)
{
    if(vis[u])return w[u];
    if(u == 0)return w[u] = 1;
    
    LL ans = 0;
    for(int i = 0; i < G[u].size(); i++)
        ans = (ans+dfs(G[u][i]))%MOD;
    vis[u] = true;
    return w[u] = ans;
}
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++)
    {
        int k, t;
        scanf("%d", &k);
        while(k--)
        {
            scanf("%d", &t);
            G[i].push_back(t);
        }
    }
    printf("%lld\n", dfs(n));
    return 0;
}