2509. 森林大礼包

★   输入文件:three_squirrels.in   输出文件:three_squirrels.out   简单对比
时间限制:1 s   内存限制:256 MB

【题目描述】

有一天紫萱学姐心情不好,学长就买了一个自己最喜欢吃的森林大礼包送给学姐,因为反正最后都是自己吃。

森林大礼包里一共可能有n种包装袋,编号为0~n-1,0号包装袋里有一颗坚果,所有1~n-1号包装袋里都装着若干包其他包装袋,但是不会出现一个包装袋的某个子包装袋里包含这这个包装袋本身的灵异现象。

最终森林大礼包里也会装着若干个包装袋,为了方便表示,我们将森林大礼包视为n号包装袋。请你帮助紫萱学姐计算这个大礼包里一共有多少颗坚果,由于答案可能很大,输出这个数对10^9+7取余的结果。

【输入格式】

输入数据第一行为一个整数n,意义如题目所示。

接下来n行,第i行一个整数ki,代表i号包装袋中含有ki个其他包装袋,接下来ki个整数aij代表这ki个包装袋的编号。

【输出格式】

一个整数,意义如题目所示。

【样例输入】

7
1 0
2 0 1
2 1 2
2 2 3
2 3 4
2 4 5
2 5 6

【样例输出】

21

【提示】

样例中7个包装袋中的坚果数组成了一个斐波那契数列。

对于40%的数据,n≤10。

对于70%的数据,aij<i。

对于100%的数据,n≤100000,0<ki≤10,0≤aij<n且≠i,对于1≤x<y≤ki,aix可能与aiy相等,即一个包装袋内可能装有多个相同编号的包装袋。

【来源】

mzx

这题用邻接表被卡了(555)

返乡topsort 从里向外拓扑,也就是该层为内层之和

#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
const int MAXN=1e5+;
const int MOD=1e9+;
vector<int> G[MAXN];
long long f[MAXN];
int in[MAXN];
queue<int> que;
int n,m; void topu(int u) {
que.push(u);
while(!que.empty()) {
int q=que.front();
que.pop();
for(int i=; i<G[q].size(); i++) {
int p=G[q][i];
in[p]--;
f[p]+=f[q];
f[p]%=MOD;
if(in[p])continue;
que.push(p);
}
}
} int main() {
freopen("three_squirrels.in","r",stdin);
freopen("three_squirrels.out","w",stdout);
scanf("%d",&n);
for(int i=; i<=n; i++) {
int num;
scanf("%d",&num);
for(int j=; j<=num; j++) {
int a;
scanf("%d",&a);
G[a].push_back(i);
in[i]++;
}
}
f[]=;
topu();
printf("%lld",f[n]%MOD);
return ;
}

luogu 2509. 森林大礼包的更多相关文章

  1. Luogu 3302 [SDOI2013]森林

    BZOJ 3123 丑陋的常数,BZOJ 19968ms 卡过. 感觉几个思想都挺经典但是挺套路的. 先考虑不连边的情况怎么做,区间第$k$小,想到主席树,每一个结点维护它到根的前缀和,这样子每一次查 ...

  2. 【Luogu】P1967货车运输(最大生成森林+倍增LCA)

    题目链接 倍增LCA是个什么蛇皮原理啊,循环完了还得再往上跳一次才能到最近公共祖先 合着我昨天WA两次就是因为这个 建最大生成森林,因为图不一定是联通的,所以不一定是一棵树.这个地方用克鲁斯卡尔就好了 ...

  3. [Luogu P2387] [NOI2014]魔法森林 (LCT维护边权)

    题面 传送门:https://www.luogu.org/problemnew/show/P2387 Solution 这题的思想挺好的. 对于这种最大值最小类的问题,很自然的可以想到二分答案.很不幸 ...

  4. luogu P2387 [NOI2014]魔法森林

    传送门 这题似乎不好直接做,可以考虑按照\(a_i\)升序排序,然后依次加边更新答案 具体实现方法是用lct维护当前的树,这里需要维护链上最大的\(b_i\).每次加一条边,如果加完以后没有环直接加, ...

  5. [luogu P2391] 白雪皑皑

    [luogu P2391] 白雪皑皑 题目背景 “柴门闻犬吠,风雪夜归人”,冬天,不期而至.千里冰封,万里雪飘.空中刮起了鸭毛大雪.雪花纷纷,降落人间. 美能量星球(pty 在 spore 上的一个殖 ...

  6. 【luogu P2195 HXY造公园】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2195 fir.吐槽题目(省略1w字 sec.考虑对一个森林的维护,每棵树用并查集维护. 操作1:输出当前查询 ...

  7. BZOJ4573:[ZJOI2016]大森林——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=4573 https://www.luogu.org/problemnew/show/P3348#sub ...

  8. BZOJ3669:[NOI2014]魔法森林——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3669 https://www.luogu.org/problemnew/show/P2387 为了得 ...

  9. Luogu [P3367] 模板 并查集

    [模板]并查集 题目详见:[[P3367][模板]并查集] (https://www.luogu.org/problemnew/show/P3367) 这是一道裸的并查集题目(要不然叫模板呢) 废话不 ...

随机推荐

  1. python之urllib.request.urlopen(url)报错urllib.error.HTTPError: HTTP Error 403: Forbidden处理及引申浏览器User Agent处理

    最近在跟着院内大神学习python的过程中,发现使用urllib.request.urlopen(url)请求服务器是报错: 在园子里找原因,发现原因为: 只会收到一个单纯的对于该页面访问的请求,但是 ...

  2. 爬虫:Scrapy10 - Link Extractors

    Link Extractors 适用于从网页(scrapy.http.Response)中抽取会被 follow 的链接的对象. Scrapy 默认提供 2 种可用的 Link Extractor,但 ...

  3. struct&&class 空的大小

    #include using namespace std; class ClassA { }; class ClassB { private: int b; }; class ClassC : pub ...

  4. Servlet 返回Json数据格式

    其实就是把数据库中的数据查询出来拼接成一个Json数据 import dao.UserDao; import endy.User; import javax.servlet.ServletExcept ...

  5. ArcGIS 创建要素时提示“表已经被注册(table already registered)”

    今天一位实施大哥在ArcCatalog中要重建一个要素类,所以就在ArcCatalog中连接上Oracle数据库,直接删除了要素类,然后重新创建了一个新的要素类,可是却报错“表已经被创建”,并提示不可 ...

  6. 【bzoj4819】[Sdoi2017]新生舞会 分数规划+费用流

    题目描述 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会买一个男生和一个女生一起跳舞,互为舞伴.Cathy收集了这些同学之间的关系,比如两个 ...

  7. Ubuntu扩展系统盘容量,虚拟机下

    安装gparted软件 sudo apt-get install gparted 接下来, 我们开始用Gparted软件扩展Ubuntu目录的容量: 先看操作步骤: 1. 先从windows的 ntf ...

  8. 洛谷 P1606 [USACO07FEB]荷叶塘Lilypad Pond 解题报告

    P1606 [USACO07FEB]荷叶塘Lilypad Pond 题目描述 FJ has installed a beautiful pond for his cows' aesthetic enj ...

  9. 2016华中农业大学预赛 B 数学

    Problem B: Handing Out Candies Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 272  Solved: 20[Submit ...

  10. Three Garlands~Educational Codeforces Round 35

    C. Three Garlands time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...