description哇!!省選題好難啊!!一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n(n<=10000)個目標,用整數xi,yi(其值在[0,5000])表示目標在地圖上的位置,每個目標都有乙個價值。雷射炸彈的投放是通過衛星定位的,但其有乙個缺點,就是其爆破範圍,即那個邊長為r的正方形的邊必須和x,y軸平行。若目標位於爆破正方形的邊上,該目標將不會被摧毀。
input
輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示xi,yi,vi
output
輸出檔案僅有乙個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標(結果不會超過32767)。
sample input
2 10 0 1
1 1 1
sample output
1
emm 事實上這是一道非常非常水的省選題!
好吧,現在來說題解。
維護乙個二維字首和即可。
這麼水的題還看題解
甩**.jpg
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define fup(i, a, b) for(int i = a; i <= b; ++i)
#define fdown(i, a, b) for(int i = a; i >= b; --i)
#define pri_(k) printf("%d ", k)
#define pri(k) printf("----%d---\n", k)
const
int maxn =
5e3+
100;
const
int inf =
0x3f3f3f3f
;typedef
long
long ull;
namespace millope
inline
intkmin
(int a,
int b)
inline
intkmax
(int a,
int b)
inline
intread()
while
(isdigit
(ch)
)return s * w;}}
using
namespace millope;
using
namespace std;
int n;
int r;
int ans;
int a[maxn]
[maxn]
;#define n 5001
intmain()
for(
int i =
1; i <= n;
++i)
}for
(int i =
1; i <= n;
++i)
}for
(int i = r; i <= n;
++i)
}printf
("%d\n"
, ans)
;return0;
}
HNOI2003 雷射炸彈
bzoj 1218 bzoj好像改版來著?暫時關了 求出f i j 代表從 1,1 到 i,j 這個矩陣的總價值和再列舉r r的矩形就好了 題目給了10s,放心暴力 不就是字首資料嘛。mdzz bzoj description 一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖...
HNOI2003 雷射炸彈
一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n n 10000 個目標,用整數xi,yi 其值在 0,5000 表示目標在地圖上的位置,每個目標都有乙個價值。雷射炸彈的投放是通過衛星定位的,但其有乙個缺點,就是其爆破範圍,即那個邊長為r的正方形的邊必須和x,y軸平行。...
HNOI2003 雷射炸彈題解
題目 輸入輸出格式 輸入格式 輸入檔案的第一行為正整數 n n 和正整數 r role presentation style position relative r r,接下來的 n n 行每行有3個正整數,分別表示 xi role presentation style position relat...