比赛 NOIP模拟赛by mzx Day2 评测结果 AAAAAAAAAA
题目名称 森林大礼包 最终得分 100
用户昵称 lsj 运行时间 2.519 s
代码语言 C++ 内存使用 8.18 MiB
提交时间 2016-10-20 20:25:45
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
int num[200000][12]={};
int n;
int flag[200000]={};
using namespace std;
int dfs(int w)
{
	int ans=0;
	if(flag[w]!=0) return flag[w]%1000000007;
	if(w==0)return 1;
	for(int i=1;i<=11;i++)
	{
		if(num[w][i]!=200000){ans=ans%1000000007;ans+=dfs(num[w][i])%1000000007;}
	}
	flag[w]=ans;
	return ans%1000000007;
}
int main()
{
	freopen("three_squirrels.in","r",stdin);
	freopen("three_squirrels.out","w",stdout);
	int x,y,z;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>x;
		for(int w=1;w<=11;w++)
			num[i][w]=200000;
		for(int u=1;u<=x;u++)
		{
			cin>>num[i][u];
		}
	}
	cout<<dfs(n)<<endl;
	return 0;
}