这-这-就一个测试点没过

B4005 [GESP202406 四级] 黑白方块

caozhihan @ 2024-08-18 19:41:49

#include <bits/stdc++.h>
using namespace std;
char s[11][11];
long long n,m;
struct dot 
{
    long long x;
    long long y;
}; 
bool can (dot,dot,dot,dot);
int main()
{
    long long mx=0;
    dot a,b,c,d;
    cin>>n>>m;
    for(long long i=1;i<=n;i++)
    {
        for(long long j=1;j<=m;j++)
        {
            cin>>s[i][j];
        }
    }
    for(long long i=1;i<=n;i++)
    {
        for(long long j=1;j<=n;j++)
        {
            a.x=i;a.y=j;
            for(long long k=a.y;k<=m;k++)
            {
                b.x=i;b.y=k;
                for(long long l=a.x;l<=n;l++)
                {
                    c.x=l;c.y=a.y;
                    d.x=l;d.y=b.y;
                    if(can(a,b,c,d)&&(c.x-a.x+1)*(b.y-a.y+1)>mx) mx=(c.x-a.x+1)*(b.y-a.y+1);
                }
            }
        }
    }
    cout<<mx<<endl;
  return 0;
}
bool can (dot a,dot b,dot c,dot d)
{
    int num1=0,num0=0;
    for(long i=a.x;i<=c.x;i++)
    {
        for(long j=a.y;j<=b.y;j++)
        {
            if(s[i][j]=='0') num0++;
            else num1++;
        }
    }
    if(num1==num0) return true;
    else return false;
};

[GESP202406 四级] 黑白方块

题目描述

小杨有一个 nm 列的网格图,其中每个格子要么是白色,要么是黑色。对于网格图中的一个子矩形,小杨认为它是平衡的当且仅当其中黑色格子与白色格子数量相同。小杨想知道最大的平衡子矩形包含了多少个格子。

输入格式

第一行包含两个正整数 n,m,含义如题面所示。

之后 n 行,每行一个长度为 m01 串,代表网格图第 i 行格子的颜色,如果为 0,则对应格子为白色,否则为黑色。

输出格式

输出一个整数,代表最大的平衡子矩形包含格子的数量,如果不存在则输出 0

样例 #1

样例输入 #1

4 5
00000
01111
00011
00011

样例输出 #1

16

提示

【样例解释】

对于样例 1,假设 (i,j) 代表第 i 行第 j 列,最大的平衡子矩形的四个顶点分别为 (1,2),(1,5),(4,2),(4,5)

【数据范围】

对于全部数据,保证有 1\leq n,m\leq 10


by caozhihan @ 2024-08-18 19:43:34

AC必关


by User709913 @ 2024-08-18 19:46:43

@caozhihan 你这个估计T了,要用到二维前缀和


by User709913 @ 2024-08-18 19:47:29

@caozhihan 哦,数据范围小,那没事了


by caozhihan @ 2024-08-18 20:59:47

可是显示的是WA


by Roy_2010 @ 2024-08-19 22:44:00

@caozhihan 可以尝试把

for(long long j=1;j<=n;j++)

改成

for(long long j=1;j<=m;j++)

试试


by Roy_2010 @ 2024-08-20 13:00:40

数据

input
2 6
001000
111111

output
6

原代码输出4\ 新代码是6

希望可以帮到你


by Roy_2010 @ 2024-08-20 13:03:09

是第25行的循环语句


by caozhihan @ 2024-08-20 16:46:19

谢谢,已关


|