请教90分,不知道wa在哪

P1736 创意吃鱼法

cbx8888 @ 2016-01-26 16:01:13

测试点 #1:通过该测试点。 得分10,耗时31ms,内存27136kB。

测试点 #2:通过该测试点。 得分10,耗时46ms,内存27553kB。

测试点 #3:通过该测试点。 得分10,耗时15ms,内存28028kB。

测试点 #4:错误的答案。 得分0,耗时78ms,内存33243kB。

该行正确答案长度:1 你的答案长度:1

你是在整个测试点输出的 0% 地方开始出错的。

这一行你是在第 1 个字符开始与标准输出不同的。

测试点 #5:通过该测试点。 得分10,耗时124ms,内存34852kB。

测试点 #6:通过该测试点。 得分10,耗时249ms,内存43364kB。

测试点 #7:通过该测试点。 得分10,耗时468ms,内存59592kB。

测试点 #8:通过该测试点。 得分10,耗时31ms,内存27156kB。

测试点 #9:通过该测试点。 得分10,耗时889ms,内存67297kB。

测试点 #10:通过该测试点。 得分10,耗时1435ms,内存77332kB。

#include<stdio.h>
#include<cstring>
#include<algorithm>
#define F f[i][j]
using namespace std;
int i,j,k,ans,n,m;
int a[2505][2505],f[2505][2505],sum[2505][2505];
int main()
{
    scanf("%d %d",&n,&m);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];
    ans=0;
    memset(f,0,sizeof(f));
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            if(a[i][j]==0) continue;
            f[i][j]=f[i-1][j-1]+1;
            if(sum[i][j]-sum[i-F][j]-sum[i][j-F]+sum[i-F][j-F]!=F) F=1;
            ans=max(F,ans);
        }
    memset(f,0,sizeof(f));
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            if(a[i][j]==0) continue;
            F=f[i-1][j+1]+1;
            if(sum[i][j+F-1]-sum[i-F][j+F-1]-sum[i][j-1]+sum[i-F][j-1]!=F) F=1;
            ans=max(F,ans);
        }
    printf("%d\n",ans);
    return 0;
}
求第四个点数据

by fltflt1 @ 2016-01-26 21:37:43

@cnx8888我知道哪里错了明天说


by Rieman_sum @ 2023-07-31 15:29:45

6


|