A4811 | 公告
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
Alice 是高二(3)班的班长。今天老师布置了一项紧急通知,需要 Alice 通过班级群转达给所有同学。
已知班级中每个同学可能属于多个「小群」(例如同桌群、社团群等),且消息传播规则如下:
1. 初始传播:Alice 将消息发至自己所在的所有群。
2. 转发规则:当某同学在某个群中收到消息时,会立即检查自己所属的其他所有群:
- 如果某个群从未收到过该消息,则该同学会将消息转发到这个群。
- 每个群仅接收第一次收到的消息(后续重复消息忽略)。
现在已知有 $n$ 位同学,编号分别为 $1, \dots , n$ ,其中班长的编号为 1。 一共有 $m$ 个小群,第 $i$ 个小群有 $num_i$ 个人。现在我们希望知道这个班最终有多少人没有收到消息。
这个问题比较简单,现在班长想知道,假如某些同学从某些群聊里面退出,可能会有多少人收不到消息,(这里规定如果同学退出了群聊,就不会回到群聊中去)
已知班级中每个同学可能属于多个「小群」(例如同桌群、社团群等),且消息传播规则如下:
1. 初始传播:Alice 将消息发至自己所在的所有群。
2. 转发规则:当某同学在某个群中收到消息时,会立即检查自己所属的其他所有群:
- 如果某个群从未收到过该消息,则该同学会将消息转发到这个群。
- 每个群仅接收第一次收到的消息(后续重复消息忽略)。
现在已知有 $n$ 位同学,编号分别为 $1, \dots , n$ ,其中班长的编号为 1。 一共有 $m$ 个小群,第 $i$ 个小群有 $num_i$ 个人。现在我们希望知道这个班最终有多少人没有收到消息。
这个问题比较简单,现在班长想知道,假如某些同学从某些群聊里面退出,可能会有多少人收不到消息,(这里规定如果同学退出了群聊,就不会回到群聊中去)
输入格式
第一行包含三个整数 $n$ 、 $m$ 、 $q$,分别表示班级总人数和同学群的数量,以及离开同学群的的人数( $2 \leq n, \leq 2\times10^5$, $1\leq m, q \leq 2\times10^5$ )。
接下来 $m$ 行,每行按如下格式描述一个同学群 $c_i$ 的成员构成: $k_i\ p_{i,1}\ p_{i,2}\ \cdots\ p_{i,k_i}$
其中:
- $k_i$ ( $1\leq k_i \leq n$ )代表该同学群的成员数。
- $p_{i,1},p_{i,2},\cdots,p_{i,k_i}$ ( $1 \leq p_{i,j} \leq n$ )代表着该学生群的学生编号 。
- $p_{i,j1} = p_{i,j2}$ 当且仅当 $j1=j2$
接下来会有 $q$ 行,每行有两个整数 $p_i$ , $c_i$ ,代表着同学 $p_i$ 离开了同学群 $c_i$ , (这里确保同学 $p_i$ 目前还在同学群 $c_i$);
对于所有的数据,保证 $\sum_{i = 1}^{m}k_i \leq 10^6$ 。
接下来 $m$ 行,每行按如下格式描述一个同学群 $c_i$ 的成员构成: $k_i\ p_{i,1}\ p_{i,2}\ \cdots\ p_{i,k_i}$
其中:
- $k_i$ ( $1\leq k_i \leq n$ )代表该同学群的成员数。
- $p_{i,1},p_{i,2},\cdots,p_{i,k_i}$ ( $1 \leq p_{i,j} \leq n$ )代表着该学生群的学生编号 。
- $p_{i,j1} = p_{i,j2}$ 当且仅当 $j1=j2$
接下来会有 $q$ 行,每行有两个整数 $p_i$ , $c_i$ ,代表着同学 $p_i$ 离开了同学群 $c_i$ , (这里确保同学 $p_i$ 目前还在同学群 $c_i$);
对于所有的数据,保证 $\sum_{i = 1}^{m}k_i \leq 10^6$ 。
输出格式
输出 $q$ 行,在同学 $p_i$ 离开了同学群 $c_i$ 后,有多少人会得不到班长发送的消息。
输入输出样例
输入 #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
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?