CFCF2159B.Rectangles

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个二进制网格 GG,其尺寸为 n×mn \times m

我们将一个矩形定义为元组 (u,d,l,r)(u,d,l,r),需满足以下条件:

  • 1u<dn1 \le u < d \le n
  • 1l<rm1 \le l < r \le m
  • 单元格 (u,l)(u,l)(u,r)(u,r)(d,l)(d,l)(d,r)(d,r) 均为 11

矩形 (u,d,l,r)(u,d,l,r) 的面积定义为 (du+1)(rl+1)(d-u+1) \cdot (r-l+1)

例如,考虑如下二进制网格:

101011010000101\begin{matrix} 1 & 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 1 \end{matrix}

在这里,你可以得到两个矩形 (1,2,1,3)(1,2,1,3)(1,3,3,5)(1,3,3,5),它们的面积分别为 6699

对于每个单元格 (i,j)(i,j),请找到所有满足 uidu \le i \le dljrl \le j \le r 的矩形 (u,d,l,r)(u,d,l,r) 中面积的最小值。

如果不存在这样的矩形,则输出 00

注:一个二进制网格是指每个单元格只包含 0011。第 ii 行第 jj 列的单元格记作 (i,j)(i,j)

注意,这些例子中只存在上述两个矩形。例如,(1,1,1,5)(1,1,1,5) 不是矩形,因为 u<du < d 不满足。

输入格式

每组测试数据包含多个测试用例。第一行为整数 tt1t1041 \le t \le 10^4),表示测试用例组数。

每一组测试数据的第一行包含两个整数 nnmm2n,m2 \le n,mnm250000n\cdot m \le 250\,000)。

接下来的 nn 行,每行包含一个长度为 mm 的字符串,表示 GG 的第 ii 行(Gi,j{0,1}G_{i,j} \in \{0,1\})。

保证所有测试用例的 nmn \cdot m 总和不超过 250000250\,000

输出格式

对于每组测试用例,输出一个 nnmm 列的网格。对于第 ii 行第 jj 列,若存在至少一个满足 uidu \le i \le dljrl \le j \le r 的矩形 (u,d,l,r)(u,d,l,r),请输出所有此类矩形的最小面积;否则输出 00

输入输出样例

  • 输入#1

    3
    3 5
    10101
    10100
    00101
    4 6
    011101
    010001
    100010
    101110
    5 5
    11100
    10110
    11111
    01101
    00111

    输出#1

    6 6 6 9 9
    6 6 6 9 9
    0 0 9 9 9
    0 10 8 8 10 10
    0 10 8 8 10 10
    10 10 8 8 10 0
    10 10 8 8 10 0
    6 6 6 0 0
    6 6 4 4 0
    6 4 4 4 6
    0 4 4 6 6
    0 0 6 6 6

说明/提示

第一个测试用例的讲解见题面。

对于第三个测试用例,共有 66 个面积最小的覆盖至少一个单元格的矩形:

  • (1,3,1,2)(1,3,1,2) ,面积为 66
  • (1,2,1,3)(1,2,1,3) ,面积为 66
  • (3,4,2,3)(3,4,2,3) ,面积为 44
  • (2,3,3,4)(2,3,3,4) ,面积为 44
  • (3,5,4,5)(3,5,4,5) ,面积为 66
  • (4,5,3,5)(4,5,3,5) ,面积为 66
首页