1view codeprogram
hehe;
2var
3ans,n,r,i,j,k,x,y:longint;
4 c:array[-10..5000,-10..5000] of
longint;
5begin
6readln(n,r);
7for i:=1
to n do
8begin
9read(x,y);
10read(c[x,y]);
11end;12
for i:=0
to5000
do13
for j:=0
to5000
do14 c[i,j]:=c[i,j]+c[i-1,j]+c[i,j-1]-c[i-1,j-1
];15
for i:=r-1
to5000
do16
for j:=r-1
to5000
do17
if c[i,j]-c[i-r,j]-c[i,j-r]+c[i-r,j-r]>ans then
18 ans:=c[i,j]-c[i-r,j]-c[i,j-r]+c[i-r,j-r];
19writeln(ans);
20end.
time limit: 10 sec memory limit: 162 mb
submit: 1297 solved: 624
[submit][status][discuss]
一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n(n<=10000)個目標,用整數xi,yi(其值在[0,5000])表示目標在地圖上的位置,每個目標都有乙個價值。雷射炸彈的投放是通過衛星定位的,但其有乙個缺點,就是其爆破範圍,即那個邊長為r的正方形的邊必須和x,y軸平行。若目標位於爆破正方形的邊上,該目標將不會被摧毀。 0
輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示
輸出檔案僅有乙個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標(結果不會超過32767)。
2 10 0 1
1 1 11dp
Bzoj1218 雷射炸彈
給你n個點的座標xi,yi。求乙個邊長為k的正方形能覆蓋多少點。可以列舉。但是要加乙個二維字首和。統計的時候可以畫乙個圖。首先a i j 是乙個大矩形。之後在旁邊切掉兩個小矩形,但多切掉了乙個重複部分,要把它加上。include include define rep i begin end for ...
BZOJ1218(線段樹 掃瞄線)
1.掃瞄線掃瞄x軸,線段樹維護y軸。2.座標 1,線段樹是從1開始維護。然後讓邊長 這樣就能包含邊上的點了。3.為了保證點在正方形內 在x軸上利用差分的思想,在x出add val 在x r 已經 1了 處add val 在y軸上利用線段樹維護1 5001這個區間,在y y r上add val 題解部...
bzoj 1218 HNOI2003 雷射炸彈
description 在長為5001的正方形矩陣中,有n個特殊的點,有相應的值。現在用乙個與x,y軸平行的長為r的正方形矩陣套點 不含邊緣 使裡面的特殊點的總值最大。input 輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示位置與值。output 輸出檔案僅有乙個正整...