HNOI2003 雷射炸彈(二維字首和)

2021-10-07 14:16:40 字數 1206 閱讀 3824

一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n(n ≤ 10000)個目標,用整數xi,yi(其值在[0,5000])表示目標在地圖上的位置,每個目標都有乙個價值。雷射炸彈的投放是通過衛星定位的,但其有乙個缺點,就是其爆破範圍,即那個邊長為r的正方形的邊必須和x,y軸平行。若目標位於爆破正方形的邊上,該目標將不會被摧毀。

輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示 xi,yi ,vi 。

輸出檔案僅有乙個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標(結果不會超過32767)。

輸入:

2 1

0 0 1

1 1 1

輸出:
使用二維字首和記錄每個區間的字首和值,

字首和公式:mp[i][j] = mp[i - 1][j] + mp[i][j - 1] - mp[i - 1][j - 1] + mp[i][j];

炸彈覆蓋區間計算公式:mp[i][j] - mp[i - r][j] - mp[i][j - r] + mp[i - r][j - r]。

#include

#include

using

namespace std;

const

int maxn =

5009

;int n, r, mp[maxn]

[maxn]

;int x, y, w, res;

intmain()

for(

int i =

1; i <= xx; i++

)for

(int j =

1; j <= yy; j++

) mp[i]

[j]= mp[i -1]

[j]+ mp[i]

[j -1]

- mp[i -1]

[j -1]

+ mp[i]

[j];

for(

int i = r; i <= xx; i++

)for

(int j = r; j <= yy; j++

) cout << res << endl;

return0;

}

HNOI2003 雷射炸彈 (二維字首和)

題目描述 一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n n 10000 個目標,用整數xi,yi 其值在 0,5000 表示目標在地圖上的位置,每個目標都有乙個價值。雷射炸彈的投放是通過衛星定位的,但其有乙個缺點,就是其爆破範圍,即那個邊長為r的正方形的邊必須和x,...

HNOI2003 雷射炸彈

bzoj 1218 bzoj好像改版來著?暫時關了 求出f i j 代表從 1,1 到 i,j 這個矩陣的總價值和再列舉r r的矩形就好了 題目給了10s,放心暴力 不就是字首資料嘛。mdzz bzoj description 一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖...

HNOI2003 雷射炸彈

description 一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n n 10000 個目標,用整數xi,yi 其值在 0,5000 表示目標在地圖上的位置,每個目標都有乙個價值。雷射炸彈的投放是通過衛星定位的,但其有乙個缺點,就是其爆破範圍,即那個邊長為r的正方形...