题目中还有m的啊
你只读入了n = =
@[url=/usershow?uid=8]发源于[/url]
by li20082008li @ 2013-09-19 17:04:12
恶……
就这么过了
@[url=/usershow?uid=16]li20082008li[/url]
by 发源于 @ 2013-09-19 17:58:18
```cpp
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int g[1501][1501],a[1501][1500],f[1500][1500];
int num,n,m;
int check(int q,int w,int x)
{g[q][w]=a[q][w];
for(int i=q-1;i>=q-x+1;i--)
{g[i][w]=1-a[i+1][w];
if(a[i][w]!=g[i][w]) return 0;
}
for(int j=w-1;j>=w-x+1;j--)
for(int i=q;i>=q-x+1;i--)
{ g[i][j]=1-g[i][j+1];
if(g[i][j]!=a[i][j])
return 0;
}
return 1;
}
int ch(int x)
{
for(int i=x;i<=n;i++)
for(int j=x;j<=m;j++)
{
num=f[i][j]-f[i-x][j]-f[i][j-x]+f[i-x][j-x];
if(num==(x-1)/2*x||num==(x+1)/2*x)
if(check(i,j,x)) return 1;
}
return 0;
}
int main()
{ int l,r,mid;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>f[i][j];
a[i][j]=f[i][j];
f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+f[i][j];
}
l=0;r=min(m,n);
while(l<r)
{
mid=(l+r+1)/2;
if(ch(mid)) l=mid;
else r=mid-1;
}
cout<<l<<endl;
}
求大佬看看为什么WA了,郁闷!!!!!!!!!!
```
by 一念之间 @ 2017-08-11 08:31:51
考古
by UnyieldingTrilobite @ 2020-07-05 14:41:48
考古
by rui_er @ 2020-07-05 14:43:43
考古
by Prean @ 2020-07-05 15:15:21
考古
by UltiMadow @ 2020-07-05 15:28:36
考古
by lion0514 @ 2020-08-09 09:19:25
考古
by ztx__ @ 2020-08-20 13:18:37
考古
by 无我1979 @ 2021-08-18 11:05:46