A5412 | News Distribution
时间限制3s
内存限制256MB
通过 / 提交0/0
题目描述
在某个社交网络中,有 $n$ 个用户在 $m$ 个好友群中互相交流。现在我们来分析一则新闻在用户之间传播的过程。
最初,某个用户 $x$ 从某个渠道获得了这则新闻。然后他会把新闻发送给他的好友(如果两个用户至少在一个群组中都在,则他们是好友)。好友们会继续将新闻发送给他们的好友,如此反复。这个过程会一直持续,直到不存在这样的一对好友:其中一人已经知道新闻,而另一人还不知道。
对于每个用户 $x$,你需要确定:如果最初只有用户 $x$ 开始传播新闻,最终会有多少用户知道这则新闻。
最初,某个用户 $x$ 从某个渠道获得了这则新闻。然后他会把新闻发送给他的好友(如果两个用户至少在一个群组中都在,则他们是好友)。好友们会继续将新闻发送给他们的好友,如此反复。这个过程会一直持续,直到不存在这样的一对好友:其中一人已经知道新闻,而另一人还不知道。
对于每个用户 $x$,你需要确定:如果最初只有用户 $x$ 开始传播新闻,最终会有多少用户知道这则新闻。
输入格式
第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 5 \cdot 10^5$),分别表示用户数和好友群数。
接下来有 $m$ 行,每行描述一个好友群。第 $i$ 行以整数 $k_i$($0 \le k_i \le n$)开头,表示第 $i$ 个群组中的用户数。接下来有 $k_i$ 个互不相同的整数,表示属于第 $i$ 个群组的用户编号。
保证 $\sum\limits_{i=1}^{m} k_i \le 5 \cdot 10^5$。
接下来有 $m$ 行,每行描述一个好友群。第 $i$ 行以整数 $k_i$($0 \le k_i \le n$)开头,表示第 $i$ 个群组中的用户数。接下来有 $k_i$ 个互不相同的整数,表示属于第 $i$ 个群组的用户编号。
保证 $\sum\limits_{i=1}^{m} k_i \le 5 \cdot 10^5$。
输出格式
输出 $n$ 个整数,第 $i$ 个整数表示如果用户 $i$ 最先开始传播新闻,最终会有多少用户知道这则新闻。
输入输出样例
输入 #1
7 5 3 2 5 4 0 2 1 2 1 1 2 6 7
输出 #1
4 4 1 4 4 2 2
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?