比赛 |
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;
}