二維字首和應用

2021-09-26 11:45:14 字數 1045 閱讀 5982

題目描述

aw最近比較佛系,開始玩起了種田遊戲養生。aw在種田的時候遇到了乙個問題,在一塊 n×m 個方格的地圖上,他想圍一塊邊長為 k 的正方形土地當做西瓜田,但是每個方格的土地肥沃度 w 並不一樣,aw想圍出一塊肥沃度之和最大的土地,請你幫幫他。

輸入乙個整數t,表示t組測試資料。

對於每組測試資料,第一行三個整數n, m(1 <= n, m <= 500), k。含義如上所示並且k保證合法。

接下來有n行m列個正整數 w(0 <= w <= 1000),表示每塊土地的肥沃度。

輸出每組樣例兩個整數x, y。表示以地圖左上角方格為(1,1)開始的座標系中,西瓜田左上角的座標。(橫軸表示x,縱軸表示y)

如果有多個滿足題意的答案,輸出座標最小(先取x最小,x相同取y最小)的那個答案。

樣例輸入

2

2 2 1

1 23 4

3 3 2

10 10 10

20 10 30

0 10 0

樣例輸出

2 2

2 1

這題正解是用二維字首和求的,邊讀入就能邊求出答案。dp[

i][j]

就是從(1,1)

到(i,j)

的長方形中的資料之和,於是就能得出以

(i,j)

為右下角的正方形農田的肥沃度之和。

ac**:

#include using namespace std;

#define rld(x) scanf("%lld",&(x))

#define rd(x) scanf("%d",&(x))

#define sc scanf

#define pf printf

typedef long long ll;

const int n = 1e3+5;

ll dp[n][n];

int main(void)}}

}pf("%d %d\n", x, y);

}return 0;

}

二維字首和

時間限制 1 sec 記憶體限制 128 mb 提交 155 解決 51 提交 狀態 討論版 命題人 admin 題目描述 一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n n 10000 個目標,用整數xi,yi 0 xi,yi 5000 表示目標在地圖上的位置,每個...

二維字首和

1 二維字首和 模板 二維字首和 模板題 acwing 796.子矩陣的和 s i,j 第i行j列格仔左上部分所有元素的和 1.以 x1,y1 為左上角,x2,y2 為右下角的子矩陣的和為 s x2 y2 s x1 1 y2 s x2 y1 1 s x1 1 y1 1 s x y s x y 1 s...

二維字首和

直接看乙個例子 假設給定乙個矩陣 1 2 4 3 5 1 2 4 6 3 5 9 那麼,可以推出他的二維字首和矩陣為 1 3 7 10 691522 121829 45 在二維字首和陣列中,9 1 2 5 1 15 1 2 5 1 4 2 18 1 5 6 2 1 3 即二位字首和陣列中第 i 行第...