比赛 NOIP模拟赛by mzx Day2 评测结果
题目名称 森林大礼包 最终得分 0
用户昵称 AAAAAAAAAA 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2016-10-21 20:54:25
显示代码纯文本
#include<cstdio>
#include<fstream>
#include<vector>
#define maxn 100010
#define mod 1000000007
using namespace std;
inline int qr()
{
	char a=getchar();
	int f=1,x=0;
	while(!isdigit(a)){
		if(a=='-')
			f=-1;
		a=getchar();
	}
	while(isdigit(a)){
		x=(x<<3)+(x<<1)+a-'0';
		a=getchar();
	}
	return f*x;
}
int n,value[maxn]={0},k;
vector<int> son[maxn];
int dfs(int x){
	if(value[x]!=0){
		return value[x];}
	for(int i=0;i<(int)son[x].size();i++){
		value[x]+=dfs(son[x][i]);
		value[x]%=mod;}
	return value[x];}
int main(){
	/*freopen("three_squirrels","r",stdin);
	freopen("three_squirrels","w",stdout);*/
	ifstream fin("three_squirrels.in");
	ofstream fout("three_squirrels.out");
	int i,j,x;
	/*n=qr();*/
	fin>>n;
	value[0]=1;
	for(i=1;i<=n;i++){
		/*k=qr();*/
		fin>>k;
		for(j=0;j<k;j++){
			/*x=qr();*/
			fin>>x;
			son[i].push_back(x);}}
	dfs(n);
	//printf("%d",value[n]);
	fout<<value[n];
	return 0;
}