比赛 NOIP模拟赛by mzx Day2 评测结果 AAAAAAAAAA
题目名称 森林大礼包 最终得分 100
用户昵称 ‎MistyEye 运行时间 0.936 s
代码语言 C++ 内存使用 6.46 MiB
提交时间 2016-10-20 21:40:20
显示代码纯文本
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;
const ll maxn = 100005, mod = 1000000007;
int N, cnt[maxn], k[maxn][15];

ll f[maxn];
ll dp(ll x) {
	if(f[x]) return f[x];
	if(!x) return f[x]=1;
	for(ll i=1; i<=cnt[x]; ++i)
		f[x] += dp(k[x][i]), f[x] %= mod;
	return f[x];
}
int main(){
	freopen("three_squirrels.in","r",stdin);
	freopen("three_squirrels.out","w",stdout);
	scanf("%d", &N);
	for(ll i=1; i<=N; ++i) {
		scanf("%d", cnt+i);
		for(ll j=1; j<=cnt[i]; ++j)
			scanf("%d", k[i]+j);
	}
	printf("%lld\n", dp(N));
	fclose(stdin); fclose(stdout);
	return 0;
}