再发一下ac代码..排版没好..
by Alextokc @ 2018-02-18 14:47:57
// by Alextokc
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
const int Maxn = 105, Maxm = 105;
int n, m;
int alpha[Maxn][Maxm], Sum[Maxn][Maxn];
inline int prefix_sum(int a, int b, int c, int d) {
return Sum[c][d] - Sum[c][b - 1] - Sum[a - 1][d] + Sum[a - 1][b - 1];
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
scanf("%d", &alpha[i][j]);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
Sum[i][j] = Sum[i - 1][j] + Sum[i][j - 1] - Sum[i - 1][j - 1] + alpha[i][j];
int ans = -0x3f3f3f3f, x, a, b, c, d;
for (a = 1; a <= n; ++a) {
for (b = 1; b <= m; ++b) {
for (x = 0; x <= n; ++x) {
c = a + x, d = b + x;
if ((c > n) || (d > m)) continue;
if ((prefix_sum(a, b, c, d)) == ((x + 1) * (x + 1))) ans = max(ans, (x + 1));
}
}
}
printf("%d\n", ans);
return 0;
}
by Alextokc @ 2018-02-18 14:48:20
再发一下..排版还是没好..
by Alextokc @ 2018-02-18 14:48:55
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
const int Maxn = 105, Maxm = 105;
int n, m;
int alpha[Maxn][Maxm], Sum[Maxn][Maxn];
inline int prefix_sum(int a, int b, int c, int d) {
return Sum[c][d] - Sum[c][b - 1] - Sum[a - 1][d] + Sum[a - 1][b - 1];
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
scanf("%d", &alpha[i][j]);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
Sum[i][j] = Sum[i - 1][j] + Sum[i][j - 1] - Sum[i - 1][j - 1] + alpha[i][j];
int ans = -0x3f3f3f3f, x, a, b, c, d;
for (a = 1; a <= n; ++a) {
for (b = 1; b <= m; ++b) {
for (x = 0; x <= n; ++x) {
c = a + x, d = b + x;
if ((c > n) || (d > m)) continue;
if ((prefix_sum(a, b, c, d)) == ((x + 1) * (x + 1))) ans = max(ans, (x + 1));
}
}
}
printf("%d\n", ans);
return 0;
}
by Alextokc @ 2018-02-18 14:49:11
所以你想表达什么。。。
by Dispwnl @ 2018-02-18 15:07:44
@[Alextokc](/space/show?uid=26050) 请不要在讨论区的标题涉及题目做法。
by Anguei @ 2018-02-18 15:24:30
@[Alextokc](/space/show?uid=26050) 其实这道题用递推可以 0ms AC
by Anguei @ 2018-02-18 15:26:03
这个排版是要多尴尬23333
by 一扶苏一 @ 2018-03-13 17:20:57
```
include <cmath>
include <cstdio>
include <cstdlib>
include <iostream>
include <algorithm>
using namespace std;
const int Maxn = 105, Maxm = 105; int n, m; int alpha[Maxn][Maxm], Sum[Maxn][Maxn];
inline int prefix_sum(int a, int b, int c, int d) { return Sum[c][d] - Sum[c][b - 1] - Sum[a - 1][d] + Sum[a - 1][b - 1]; }
int main() { scanf("%d%d", &n, &m);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
scanf("%d", &alpha[i][j]);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
Sum[i][j] = Sum[i - 1][j] + Sum[i][j - 1] - Sum[i - 1][j - 1] + alpha[i][j];
int ans = -0x3f3f3f3f, x, a, b, c, d;
for (a = 1; a <= n; ++a) {
for (b = 1; b <= m; ++b) {
for (x = 0; x <= n; ++x) {
c = a + x, d = b + x;
if ((c > n) || (d > m)) continue;
if ((prefix_sum(a, b, c, d)) == ((x + 1) * (x + 1))) ans = max(ans, (x + 1));
}
}
}
printf("%d\n", ans);
return 0;
}
```
我帮你排版吧
by Misaka19280 @ 2018-04-06 21:31:56
同是前缀和0ms
```cpp
#include <stdio.h>
int n,m,a[102][102],i,j,k,ans=0;
int main()
{
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++) for (j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
a[i][j]+=a[i][j-1]+a[i-1][j]-a[i-1][j-1];
}
for (i=1;i<=n;i++) for (j=1;j<=m;j++) for (k=i+ans;k<=n;k++) if ((a[i-1][j-1]+a[k][j+k-i]-a[i-1][j+k-i]-a[k][j-1]==(k-i+1)*(k-i+1))&&(ans<k-i+1)) ans=k-i+1;
printf("%d",ans);
}
```
by SSerxhs @ 2018-06-12 18:39:39