CF1167C News Distribution

题目描述

在某个社交网络中,有 $n$ 个用户在 $m$ 个好友群中互相交流。现在我们来分析一则新闻在用户之间传播的过程。 最初,某个用户 $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 $。

输出格式

输出 $n$ 个整数,第 $i$ 个整数表示如果用户 $i$ 最先开始传播新闻,最终会有多少用户知道这则新闻。

说明/提示

由 ChatGPT 4.1 翻译