记录编号 |
327218 |
评测结果 |
AAAAAAAAAA |
题目名称 |
森林大礼包 |
最终得分 |
100 |
用户昵称 |
AAAAAAAAAA |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.666 s |
提交时间 |
2016-10-21 20:54:38 |
内存使用 |
1.65 MiB |
显示代码纯文本
#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;
}