QOJ.ac

QOJ

実行時間制限: 0.4 s メモリ制限: 1024 MB 満点: 100

#15690. 改善 SPAM

統計

在完成了清理客户数据库中重复用户这一出色工作后,你的老板迫切希望你能对公司的 SPAM(System for Publishing Amazing Marketing,奇妙营销发布系统)进行改进,从而再次给他留下深刻印象。

尽管营销活动对客户非常有用,但客服部门还是收到了一些投诉,指出发送了太多的消息,甚至某些客户会多次收到同一条消息。

SPAM 是基于邮件列表的。每个邮件列表由客户电子邮件和/或其他邮件列表组成。客户电子邮件可以在任何时间点被添加到现有的邮件列表中,而邮件列表只有在创建时才能被添加到任意数量的现有邮件列表中。注意,不可能同时创建多个邮件列表。

当向一个邮件列表发送消息时,系统会将该消息发送给列表中的每个地址。如果列表中的地址是客户电子邮件,则消息会发送到该客户电子邮件;如果地址是邮件列表,则对该邮件列表启动相同的发送过程。

出于隐私原因,在下面的示例中,邮件列表和客户电子邮件用整数表示。假设 $1$、$2$ 和 $3$ 是邮件列表,而 $4$ 和 $5$ 是客户电子邮件。此外,邮件列表 $1$ 包含邮件列表 $2$ 和 $3$,邮件列表 $2$ 包含客户电子邮件 $4$ 和 $5$,而邮件列表 $3$ 包含客户电子邮件 $4$ 和邮件列表 $2$。现在假设向邮件列表 $1$ 发送了一条消息。这意味着该列表将按上述方式进行处理,然后邮件列表 $2$ 和 $3$ 也会被处理。当处理邮件列表 $2$ 时,消息将发送给客户电子邮件 $4$ 和 $5$。当处理邮件列表 $3$ 时,第二条消息将发送给客户电子邮件 $4$,并且邮件列表 $2$ 将再次被处理,这导致第三条消息发送给客户电子邮件 $4$,第二条消息发送给客户电子邮件 $5$。因此,总共向客户电子邮件发送了五条消息。

你的任务是优化 SPAM,使得没有客户会多次收到相同的消息。作为第一步,你的老板想知道在你的改进之前和之后,发送给客户电子邮件的消息数量。在上述示例中,在你的工作完成后,应该只向客户电子邮件发送两条消息。

输入格式

第一行包含两个整数 $N$ 和 $L$($2 \le N \le 2000$,$1 \le L \le \min(N - 1, 1000)$),分别表示系统中的地址总数和作为邮件列表的地址数量。

地址用 $1$ 到 $N$ 之间的不同整数标识。从 $1$ 到 $L$ 的地址是邮件列表,其余地址是客户电子邮件。

对于 $i = 1, 2, \dots, L$,接下来的 $L$ 行中的第 $i$ 行描述了邮件列表 $i$。该行包含一个整数 $K$($1 \le K < N$),后跟 $K$ 个不同的整数 $M_1, M_2, \dots, M_K$(对于 $j = 1, 2, \dots, K$,$1 \le M_j \le N$),表示邮件列表 $i$ 包含这 $K$ 个地址。每个客户地址至少出现在一个邮件列表中。

输出格式

输出单行,包含两个整数 $B$ 和 $A$,分别表示如果向邮件列表 $1$ 发送一条消息,在改进之前和之后发送给客户电子邮件的消息数量。由于这些数字可能非常大,请输出它们模 $10^9 + 7$ 的余数。

样例

输入样例 1

5 3
2 2 3
2 4 5
2 4 2

输出样例 1

5 2

输入样例 2

15 6
1 6
7 10 11 12 13 9 7 8
5 6 14 4 5 15
2 14 15
2 4 14
2 5 4

输出样例 2

5 2

输入样例 3

10 5
4 8 9 10 3
3 9 10 6
3 8 9 7
6 2 3 6 7 8 10
5 9 10 3 1 7

输出样例 3

6 4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.