CF2062H.Galaxy Generator

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在一个二维宇宙中,恒星可以用平面上的点 (x,y)(x, y) 表示。当且仅当两颗恒星的 xx 或 yy 坐标相同,且它们之间的线段上没有其他恒星时,这两颗恒星直接相连。定义星系为由直接或间接(通过其他恒星)相连的恒星组成的连通分量。

对于一个恒星集合,其价值定义为:经过任意次(可能为零次)以下操作后,能够得到的最小星系数量。每次操作中,你可以选择一个没有恒星的位置 (x,y)(x, y)。如果在此处创建恒星后,该恒星能够直接连接到至少 33 颗恒星,则你可以在此处创建一颗新恒星。

给定一个由 00 和 11 组成的 n×nn \times n 矩阵 aa,描述一个恒星集合 SS。当且仅当 ax,y=1a_{x,y} = 1 时,(x,y)(x, y) 处存在恒星。请计算 SS 的所有非空子集的价值之和,结果对 109+710^9 + 7 取模。

输入格式

第一行输入包含一个整数 tt(1≤t≤1001 \leq t \leq 100)——测试用例数量。

每个测试用例:

  • 第一行包含一个整数 nn(1≤n≤141 \leq n \leq 14)——矩阵 aa 的大小。
  • 接下来 nn 行,第 ii 行包含一个长度为 nn 的字符串 aia_i——矩阵 aa 的第 ii 行。

保证所有测试用例的 2n2^n 之和不超过 2142^{14}。

输出格式

对于每个测试用例,输出所有非空子集的价值之和,结果对 109+710^9 + 7 取模。

输入输出样例

  • 输入#1

    8
    1
    0
    2
    01
    10
    3
    010
    000
    101
    4
    0110
    1001
    1001
    0110
    11
    11111110111
    10000010010
    10111010011
    10111010011
    10111010001
    10000010000
    11111110101
    00000000111
    11011010011
    10010101100
    11101010100
    11
    11011111110
    10010000010
    00010111010
    10010111010
    01010111010
    11010000010
    01011111110
    11000000000
    01010000010
    01000111100
    00000001010
    11
    11010101001
    11001010100
    00000000110
    11111110010
    10000010010
    10111010110
    10111010111
    10111010010
    10000010110
    11111110100
    00000000000
    3
    111
    100
    111

    输出#1

    0
    4
    9
    355
    593092633
    438667113
    922743932
    155

说明/提示

第一个测试用例中,SS 为空集。由于没有非空子集,答案为 00。

第二个测试用例中,S={(1,2),(2,1)}S = \{(1,2), (2,1)\},共有 33 个非空子集:

  • {(1,2)}\{(1,2)\} 和 {(2,1)}\{(2,1)\}:仅有一个恒星,形成 11 个星系。
  • {(1,2),(2,1)}\{(1,2), (2,1)\}:两颗恒星不相连,形成 22 个星系。
    因此答案为 1+1+2=41 + 1 + 2 = 4。

第三个测试用例中,S={(1,2),(3,1),(3,3)}S = \{(1,2), (3,1), (3,3)\},共有 77 个非空子集:

  • 单恒星子集:各形成 11 个星系。
  • {(1,2),(3,1)}\{(1,2), (3,1)\} 和 {(1,2),(3,3)}\{(1,2), (3,3)\}:不相连,各形成 22 个星系。
  • {(3,1),(3,3)}\{(3,1), (3,3)\}:直接相连,形成 11 个星系。
  • 全集 {(1,2),(3,1),(3,3)}\{(1,2), (3,1), (3,3)\}:初始时 (1,2)(1,2) 与其他恒星不连通。可通过在 (3,2)(3,2) 处创建恒星(连接到三个恒星)合并为 11 个星系。
    因此答案为 1+1+1+2+2+1+1=91 + 1 + 1 + 2 + 2 + 1 + 1 = 9。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页