记录编号 | 327218 | 评测结果 | AAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | 森林大礼包 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | 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; }