題目
輸入輸出格式
輸入格式:
輸入檔案的第一行為正整數
n n
和正整數
r' role="presentation" style="position: relative;">r
r,接下來的
n n
行每行有3個正整數,分別表示 xi
' role="presentation" style="position: relative;">xix
i,yi
y
i,vi
v i。
輸出格式:
輸出檔案僅有乙個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標(結果不會超過32767)。
輸入輸出樣例
輸入樣例#1:
2 1
0 0 1
1 1 1
輸出樣例#1:
1看起來很難,實際上就是求乙個二維字首和就行了,然後遍歷每一點,得出最大值。
上**
#include
using namespace std;
int n,r,v[5021][5021],ans,x,y,vi;
int main()
for(int i=1;i<=5001;i++)
for(int j=1;j<=5001;j++)
v[i][j]+=v[i-1][j]+v[i][j-1]-v[i-1][j-1];
for(int i=0;i<=5000-r;i++)
for(int j=0;j<=5000-r;j++)
ans=max(ans,v[i+r][j+r]-v[i+r][j]-v[i][j+r]+v[i][j]);
printf("%d\n",ans);
return
0;}
題解 HNOI2003 雷射炸彈
基本的二維字首和,把從 0,0 到任何乙個點圍成的矩形中所有的價值計算出來,然後再通過容斥原理算出所有可能正方形中的價值之和。如果把初始的地圖存入a陣列,那麼它的二位字首和s就是 s i j sum sum a x y 根據容斥原理,有 s i j s i 1 j s i j 1 a i j s i...
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的正方形...