#P14606. [Bulgarian 2026 School Round]matrix

    ID: 13822 传统题 600ms 1024MiB 尝试: 2 已通过: 1 难度: 6 上传者: 标签>CF1900单调栈数学数据结构矩阵前缀和枚举

[Bulgarian 2026 School Round]matrix

题目描述

给定一个仅由 01 组成的矩阵 AA,它有 NN 行、MM 列。

矩阵的行和列都从 00 开始编号,记第 ii 行第 jj 列的元素为 Ai,jA_{i,j}

由矩阵 AA 构造出一个更大的矩阵 BB

  • 在纵向上重复 RR 次;
  • 在横向上重复 CC 次。

于是矩阵 BBNRN \cdot R 行、MCM \cdot C 列,并满足:

Bi,j=A(imodN),(jmodM)B_{i,j} = A_{(i \bmod N),(j \bmod M)}

其中:

  • 0i<NR0 \le i < N \cdot R
  • 0j<MC0 \le j < M \cdot C

我们称矩阵 BB 中的一个矩形为如下形式的一组单元格:

选择两个行下标 r1,r2r_1, r_2 和两个列下标 c1,c2c_1, c_2,满足:

0r1r2<NR0 \le r_1 \le r_2 < N \cdot R 0c1c2<MC0 \le c_1 \le c_2 < M \cdot C

该矩形包含所有满足行号在 [r1,r2][r_1, r_2]、列号在 [c1,c2][c_1, c_2] 范围内的单元格。

请编写程序 matrix,求出矩阵 BB仅由 1 组成的矩形的最大面积(即单元格数量)。

输入格式

第一行输入四个整数 N,M,R,CN, M, R, C

接下来 NN 行,每行输入一个长度为 MM 的仅由字符 01 构成的字符串,表示矩阵 AA

输出格式

输出一个整数,表示所求的最大面积。

数据范围

  • 1N,M20001 \le N, M \le 2000
  • 1R,C1061 \le R, C \le 10^6

子任务

子任务 分值 依赖子任务 N,MN,M 范围 其它限制
0 - - 样例
1 10 N=1N=1 R=C=1R=C=1
2 5 1 R=1R=1
3 C=1C=1
4 10 - N,M20N,M \le 20 R=C=1R=C=1
5 15 4 N,M60N,M \le 60
6 4-5 N,M300N,M \le 300
7 10 1,4-6 N,M2000N,M \le 2000
8 30 0-7

只有通过某个子任务以及其所有依赖子任务的全部测试点,才能获得该子任务的分数。

样例

输入

3 4 2 3
0110
1111
0101

输出

12

样例解释

矩阵 BB 的大小为 NR=6N \cdot R = 6 行、MC=12M \cdot C = 12 列,因此它是:

011001100110
111111111111
010101010101
011001100110
111111111111
010101010101

其中一个最大面积的全 1 矩形面积为 1212