纯前缀和20msAC

P1387 最大正方形

再发一下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


| 下一页