一種新型的雷射炸彈,可以摧毀乙個邊長為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的正方形...