BZOJ1218 HNOI2003 雷射炸彈

2022-05-19 20:57:59 字數 852 閱讀 3368

給出乙個平面直角座標系,座標系上有許多點,每個點都有相應的價值,現有乙個炸彈,範圍為乙個r*r的正方形並且邊與x軸或y軸平行,範圍內的點將會被炸掉,正方形邊上的點不會被炸掉,請問能炸掉的最大價值

肯定不能單純的找出每個可能的正方形,然後找這個正方形中的價值

優化一下,將平面直角座標系的範圍變為從1開始

其實對於炸彈範圍的條件,畫一下圖,就會發現就是炸彈範圍的正方形就是每條邊上各有r個點的正方形,且邊上的點也可以被炸掉

然後a[i][j]表示以(1,1)為左下角,(i,j)為右上角所構成的矩陣的價值和

然後列舉正方形的右上角(i,j)

ans=max(ans,a[i][j]-a[i-r][j]-a[i][j-r]+a[i-r][j-r])

#include#include

#include

#include

#include

using

namespace

std;

int a[5100][5100

];int

main()

for(int i=1;i<=5001;i++) for(int j=1;j<=5001;j++) a[i][j]+=a[i-1

][j];

for(int i=1;i<=5001;i++) for(int j=1;j<=5001;j++) a[i][j]+=a[i][j-1

];

int ans=0

;

for(int i=r;i<=5001;i++)

}printf(

"%d\n

",ans);

return0;

}

bzoj 1218 HNOI2003 雷射炸彈

description 在長為5001的正方形矩陣中,有n個特殊的點,有相應的值。現在用乙個與x,y軸平行的長為r的正方形矩陣套點 不含邊緣 使裡面的特殊點的總值最大。input 輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示位置與值。output 輸出檔案僅有乙個正整...

bzoj1218 HNOI2003 雷射炸彈

題目傳送門 看到十秒果斷想到暴力,結果一維字首和優化tle了,只好去 了一發二維字首和。花了幾分鐘看了一下,發現其實就是個簡單的容斥原理。以矩陣的右下角作為描述點,預處理出所有的矩陣f i j 表示從 1,1 到 i,j 所有值的和。那麼如圖所示 要求的部分就是紅色部分。設紅色部分右下角的座標為 n...

BZOJ 1218(HNOI2003) 雷射炸彈

一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n n 10000 個目標,用整數xi,yi 0 xi,yi 5000 表示目標在地圖上的位置,每個目標都有乙個價值0第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示xi,yi,vi 僅有乙個正整數,表示一...