最后一个点wa了,帮忙看看谢谢!
  • 板块P2004 领地选择
  • 楼主Yemuua
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/12/3 18:49
  • 上次更新2023/12/3 21:02:45
查看原帖
最后一个点wa了,帮忙看看谢谢!
810072
Yemuua楼主2023/12/3 18:49
#define ll long long
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int a[1005][1005], p[1005][1005];
int main() {
    int n, m, c;
    ll ans = -1, o=0, i=0;
    scanf("%d%d%d", &n,&m,&c);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            scanf("%d", &a[i][j]);
        }
    }
    int b = fmin(n, m);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            p[i][j] = p[i - 1][j] + p[i][j - 1] - p[i - 1][j - 1] + a[i][j];
        }
    }

    for (int x1 = 1; x1 <= b-c+1; x1++) {
        for (int y1 = 1; y1 <= b-c+1; y1++) {
            int x = p[x1+c-1][y1+c-1] - p[x1 - 1][y1+c-1] - p[x1+c-1][y1 - 1] + p[x1 - 1][y1 - 1];
            if (ans < x) {
                ans = x;
                o = x1, i = y1;
            }
        }
    }
    printf("%lld %lld\n",o,i);
    return 0;
}
  1. 这里我只要一把最后一个用例输进去,我的vs就会崩溃,洛谷ide也显示输入不合法。想问问怎么回事?要怎么去改呢!?
  2. !!!我在发帖时,又随意改了两次ans的范围1000000和-1e9,发现后者又可以了。我还是不明白我看了测试数据似乎没有比我改的第一次还大的负数范围呀?
2023/12/3 18:49
加载中...