A44567.公告
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
Alice 是高二(3)班的班长。今天老师布置了一项紧急通知,需要 Alice 通过班级群转达给所有同学。
已知班级中每个同学可能属于多个「小群」(例如同桌群、社团群等),且消息传播规则如下:
- 初始传播:Alice 将消息发至自己所在的所有群。
- 转发规则:当某同学在某个群中收到消息时,会立即检查自己所属的其他所有群:
- 如果某个群从未收到过该消息,则该同学会将消息转发到这个群。
- 每个群仅接收第一次收到的消息(后续重复消息忽略)。
现在已知有 n 位同学,编号分别为 1,…,n ,其中班长的编号为 1。 一共有 m 个小群,第 i 个小群有 numi 个人。现在我们希望知道这个班最终有多少人没有收到消息。
这个问题比较简单,现在班长想知道,假如某些同学从某些群聊里面退出,可能会有多少人收不到消息,(这里规定如果同学退出了群聊,就不会回到群聊中去)
输入格式
第一行包含三个整数 n 、 m 、 q,分别表示班级总人数和同学群的数量,以及离开同学群的的人数( 2≤n,≤2×105, 1≤m,q≤2×105 )。
接下来 m 行,每行按如下格式描述一个同学群 ci 的成员构成: ki pi,1 pi,2 ⋯ pi,ki
其中:
- ki ( 1≤ki≤n )代表该同学群的成员数。
- pi,1,pi,2,⋯,pi,ki ( 1≤pi,j≤n )代表着该学生群的学生编号 。
- pi,j1=pi,j2 当且仅当 j1=j2
接下来会有 q 行,每行有两个整数 pi , ci ,代表着同学 pi 离开了同学群 ci , (这里确保同学 pi 目前还在同学群 ci);
对于所有的数据,保证 ∑i=1mki≤106 。
输出格式
输出 q 行,在同学 pi 离开了同学群 ci 后,有多少人会得不到班长发送的消息。
输入输出样例
输入#1
3 2 3 2 1 2 2 2 3 3 2 2 2 2 1
输出#1
1 1 2
输入#2
3 2 1 2 1 2 2 2 3 1 1
输出#2
2
说明/提示
对于第一个样例来说,
开始 1
号群聊有 1,2
,2
号群聊会有2,3
两个人。
现在3
号同学离开了2
号群聊,1
号群聊有 1,2
,2
号群聊只有2
,所以在班长发送完消息后只有 1,2
能收到消息。答案为3-2=1
接下来,2
号同学离开了2
号群聊,1
号群聊有 1,2
,2
号群聊没有人,,所以在班长发送完消息后只有 1,2
能收到消息。答案为3-2=1
最后,2
号同学离开了1
号群聊,1
号群聊有 1
,2号群聊没有人,,所以在班长发送完消息后只有 1
能收到消息。答案为3-1=2