HNOI2003 雷射炸彈題解

2021-08-27 14:05:07 字數 1043 閱讀 1501

題目

輸入輸出格式

輸入格式:

輸入檔案的第一行為正整數

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的正方形...