A91480.最大连通块

普及+/提高

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

Welcome24ever 有一个由 nnmm 列组成的网格,每个格子要么是 .,要么是 #

我们把一些 # 格子组成的集合称为一个 连通块,当且仅当:

  • 对于集合中的任意两个格子,
    可以只在集合内部移动,每一步从当前格子走到一个与它共享一条边的格子,
    最终从一个格子到达另一个格子。

一个连通块的大小,指的是其中包含的格子数。

一次操作中,Welcome24ever 可以:

  • 任意选择一行 rr1rn1 \le r \le n),或者
  • 任意选择一列 cc1cm1 \le c \le m),

然后将这一整行或这一整列中所有格子都改成 #

请你帮忙计算:在最多进行一次操作之后,网格中 # 连通块的最大可能大小是多少。

输入格式

输入的第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来依次给出 tt 组测试数据,每组数据格式如下:

  • 第一行包含两个整数 n,mn, m1nm1061 \le n \cdot m \le 10^6),表示网格的行数和列数;
  • 接下来有 nn 行,每行是一个长度为 mm 的字符串,只包含字符 .#,表示这一行上每个格子的状态。

保证所有测试用例中 nmn \cdot m总和不超过 10610^6

输出格式

对于每个测试用例,输出一行一个整数,表示 Welcome24ever 在最多进行一次操作后,网格中 # 连通块的最大可能大小

输入输出样例

  • 输入#1

    6
    1 1
    .
    4 2
    ..
    #.
    #.
    .#
    3 5
    .#.#.
    ..#..
    .#.#.
    5 5
    #...#
    ....#
    #...#
    .....
    ...##
    6 6
    .#..#.
    #..#..
    .#...#
    #.#.#.
    .#.##.
    ###..#
    6 8
    ..#....#
    .####.#.
    ###.#..#
    .##.#.##
    .#.##.##
    #..##.#.

    输出#1

    1
    6
    9
    11
    15
    30

说明/提示

说明/提示

在第二个测试用例中,Alex 最优的做法是将第 22 列的所有格子都设置为 '#'。这样,最大的 '#' 连通块大小为 66

在第三个测试用例中,Alex 最优的做法是将第 22 行的所有格子都设置为 '#'。这样,最大的 '#' 连通块大小为 99

在第四个测试用例中,Alex 最优的做法是将第 44 行的所有格子都设置为 '#'。这样,最大的 '#' 连通块大小为 1111

首页