P2280 HNOI2003 雷射炸彈

2022-05-13 12:37:17 字數 1322 閱讀 1222

輸入格式:

輸入檔名為input.txt

輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示 xi,yi ,vi 。

輸出格式:

輸出檔名為output.txt

輸出檔案僅有乙個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標(結果不會超過32767)。

輸入樣例#1:

2 1

0 0 1

1 1 1

輸出樣例#1:

1
居然沒有題解,,

這道題目我們可以考慮用二維字首和解決。

我們用dp[i][j]表示從(1,1)到(i,j)的價值之和,

因為只有5000個點,所以我們可以考慮暴力預處理,、

轉移方程:dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+dp[i][j](可以畫圖理解一下)

然後暴力求結果就好

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

1 #include2 #include3 #include4 #include5

using

namespace

std;

6int n,r,dp[5101][5101];7

void read(int &n)811

while(c>='

0'&&c<='9'

)12

13 flag==1?n=-x:n=x;14}

15int ans=0;16

intmain()

1725

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

26for(int j=1;j<=5001;j++)

27 dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+dp[i][j];

28for(int i=0;i<=5001-r;i++)

29for(int j=0;j<=5001-r;j++)

30 ans=max(ans,dp[i+r][j+r]-dp[i+r][j]-dp[i][j+r]+dp[i][j]);

31 printf("%d"

,ans);

32return0;

33 }

P2280 HNOI2003 雷射炸彈

雷射炸彈 一種新型的雷射炸彈,可以摧毀乙個邊長為r的正方形內的所有的目標。現在地圖上有n n 10000 個目標,用整數xi,yi 其值在 0,5000 表示目標在地圖上的位置,每個目標都有乙個價值。雷射炸彈的投放是通過衛星定位的,但其有乙個缺點,就是其爆破範圍,即那個邊長為r的正方形的邊必須和x,...

P2280 HNOI2003 雷射炸彈

輸入輸出格式 輸入格式 輸入檔名為input.txt 輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示 xi,yi vi 輸出格式 輸出檔名為output.txt 輸出檔案僅有乙個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標 結果不會超過32767 輸入樣例 1...

洛谷P2280 HNOI2003 雷射炸彈

題目描述 輸入輸出格式 輸入格式 輸入檔名為input.txt 輸入檔案的第一行為正整數n和正整數r,接下來的n行每行有3個正整數,分別表示 xi,yi vi 輸出格式 輸出檔名為output.txt 輸出檔案僅有乙個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標 結果不會超過32767 輸...