|
发表于 2023-12-12 21:07:22
|
显示全部楼层
本楼为最佳答案
- #include <bits/stdc++.h>
- using namespace std;
- int n, m, w, h;
- long long a[1001][1001], ans = -1ll << 60;
- int main() {
- scanf("%d%d%d%d", &n, &m, &w, &h);
- for (int i = 1; i <= n; ++i) {
- for (int j = 1; j <= m; ++j) {
- scanf("%lld", &a[i][j]);
- }
- }
- for (int i = 1; i <= n; ++i) {
- for (int j = 1; j <= m; ++j) {
- a[i][j] += a[i][j - 1];
- }
- }
- for (int i = 1; i <= n; ++i) {
- for (int j = 1; j <= m; ++j) {
- a[i][j] += a[i - 1][j];
- }
- }
- for (int i = w; i <= n; ++i) {
- for (int j = h; j <= m; ++j) {
- long long tmp = a[i][j] - a[i - w][j] - a[i][j - h] + a[i - w][j - h];
- ans = max(ans, tmp);
- }
- }
- printf("%lld\n", ans);
- return 0;
- }
复制代码
你猜我怎么弄的 |
评分
-
查看全部评分
|