求调!!!回复必关(非常急)

B4005 [GESP202406 四级] 黑白方块

panshengqi @ 2024-09-27 20:06:28

#include<bits/stdc++.h>
using namespace std;
int n,m,a[15][15],l;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        string s;
        cin>>s;
        for(int j=0;j<s.size();j++)
        {
            a[i][j+1]=s[j]-'0';
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n&&i<=j;j++)
        {
            for(int k=1;k<=m;k++)
            {
                for(int s=1;s<=m&&k<=s;s++)
                {
                    int w=0,q=0;
                    if((s-k)*(j-i)%2==1) {
                        continue;
                    }
                    for(int b=i;b<=j;b++)
                    {
                        for(int c=k;c<=s;c++)
                        {
                            if(a[b][c]==1) w++;
                            else if(a[b][c]==0) q++;
                        }
                    }
                    if(w==q)l=max(l,(j-i)*(s-k));   
                }
            }
        }
    }
    cout<<l;
    return 0;
}

这是代码!!!


by kbzcz @ 2024-09-27 20:10:38

@panshengqi 贡献应该是 (j-i+1)*(s-k+1),但还是只有65。


by kbzcz @ 2024-09-27 20:16:45

@panshengqi 还有上面 js 的循环条件写错了,格子数计算也得改。


by Double_Sheep @ 2024-09-27 20:23:10

@panshengqi

贡献需要 +1,循环条件要像下面这样写,不然不满足就直接挂了:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[15][15],l;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        string s;
        cin>>s;
        for(int j=0;j<s.size();j++)
        {
            a[i][j+1]=s[j]-'0';
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            for(int k=1;k<=m;k++)
            {
                for(int s=k;s<=m;s++)
                {
                    int w=0,q=0;
                    if((s-k+1)*(j-i+1)%2==1) {
                        continue;
                    }
                    for(int b=i;b<=j;b++)
                    {
                        for(int c=k;c<=s;c++)
                        {
                            if(a[b][c]==1) w++;
                            else if(a[b][c]==0) q++;
                        }
                    }
                    if(w==q)l=max(l,(j-i+1)*(s-k+1));   
                }
            }
        }
    }
    cout<<l;
    return 0;
}

by panshengqi @ 2024-09-28 07:07:32

感谢各位大佬,已关注


by panshengqi @ 2024-09-28 07:08:36

@Double_Sheep @kbzcz


|