#C. 推理王国

    Type: Default File IO: reason 1000ms 512MiB

推理王国

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

推理王国(reason\texttt{reason}

【推理王国】

在小 D 的家乡,一直有这样一个传说:

在遥远的大海彼岸,有一个推理王国,这里有 100100 个人,每个人都聪明绝顶且善于推理。

这个国家里的每个人都是红眼睛或者蓝眼睛,所有人都厌恨红眼睛,所以如果一个人知道了自己是红眼睛,他就会在当天晚上立刻开枪自杀。

每个人都能看到除自己外所有人的眼睛颜色。

每天中午所有人都会在广场集会,此时所有人都知道有哪些人在夜晚自杀了。

事实上,这个国家里的每个人都是红眼睛,但他们谁都不愿意告诉其他人。

直到某天中午,一个旅行者来到了这个王国,他告诉每个人:“这里有至少一个红眼睛的人”。

在他说出这句话后的很多天都无事发生,直到第 100100 天的夜晚,所有人都开枪自杀了。

假如你不知道这个故事是为什么,你可以去看一下这个视频

小 D 对这个故事很感兴趣,于是他在某天中午来到了传说中的推理王国。

他发现,故事说的基本是真的,只有两点不一样:

  1. 这个岛上还有 nn 个人在生活。
  2. 岛上每个人有若干个朋友,他只会相信他朋友的眼睛颜色,并且认为其他人的眼睛颜色并不可信(每个人都知道其他人的朋友是谁)。

小 D 像故事里一样在这天中午所有人说:“这里有至少一个红眼睛的人”,然后离开了这个王国。

小 D 想知道,假如他说的话会引起某些人自杀,那么第一个响起枪声的晚上是第几天,以及这一晚共有多少人自杀。

但他忘了每个人的眼睛颜色,因此他想知道在这 2n12^n-1 种眼睛颜色的可能中,这两个问题答案的和。

特别地,假如某种情况下不会有人自杀,则这种情况不统计入答案中。

分别输出两个问题的答案对 109+710^9+7 取模的结果。

【输入格式】

reason.in\texttt{reason.in} 中读入数据。

第一行一个整数 nn,表示推理王国的人数。

接下来 nn 行每行一个长度为 nn 的 01 串,表示哪些人是第 ii 个人的朋友。

jj 个人是第 ii 个人的朋友当且仅当第 ii 个 01 串的第 jj 位为 1。

保证第 ii 个 01 串的第 ii 位是 0\texttt 0

【输出格式】

输出到 reason.out\texttt{reason.out} 中。

一行两个整数,分别表示两个问题的答案对 109+710^9+7 取模后的结果。

【样例 1 输入】

2
01
10

【样例 1 输出】

4 4

【样例 1 解释】

假如只有一个人是红眼睛,那么这个人在第 11 天(即当天)晚上就会自杀。

假如两个人都是红眼睛,那么这两个人会在第 22 天晚上同时自杀。

【数据范围】

对于所有测试数据:1n30001\le n\le3000

NOIP 题目选讲(二)

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2023-12-1 0:00
End at
2023-12-8 0:00
Duration
168 hour(s)
Host
Partic.
22