P2280 [HNOI2003]激光炸彈
阿新 • • 發佈:2017-07-11
data- 文件的 col book ext 難度 二維前綴和 -a ati
P2280 [HNOI2003]激光炸彈
-
- 66通過
- 300提交
- 題目提供者xmyzwls
- 標簽各省省選2003湖南雲端↑
- 難度普及+/提高
- 時空限制1s / 128MB
最新討論更多討論
- 正在實驗中學培訓的親門
- 其實我發現你累不累加v的值…
- 這真的是省選題???
題目描述
輸入輸出格式
輸入格式:
輸入文件名為input.txt
輸入文件的第一行為正整數n和正整數R,接下來的n行每行有3個正整數,分別表示 xi,yi ,vi 。
輸出格式:
輸出文件名為output.txt
輸出文件僅有一個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標(結果不會超過32767)。
輸入輸出樣例
輸入樣例#1:2 1 0 0 1 1 1 1輸出樣例#1:
1
分析
二維前綴和,先預處理出前綴和,然後枚舉右下角的點,求最大,註意循環初始條件與結束條件
代碼
1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int a[5010][5010]; 5 intmain() 6 { 7 int n,r,ans = 0; 8 scanf("%d%d",&n,&r); 9 for (int x,y,z,i=1; i<=n; ++i) 10 { 11 scanf("%d%d%d",&x,&y,&z); 12 a[x+1][y+1] = z; 13 } 14 for (int i=1; i<=5001; ++i) 15 for (int j=1; j<=5001; ++j) 16 a[i][j] = a[i][j]+a[i-1][j]+a[i][j-1]-a[i-1][j-1]; 17 for (int i=0; i<5001-r; ++i) //從0開始 18 for (int j=0; j<5001-r; ++j) 19 ans = max(ans,a[i+r][j+r]-a[i+r][j]-a[i][j+r]+a[i][j]); 20 printf("%d",ans); 21 return 0; 22 }
P2280 [HNOI2003]激光炸彈