题目名称 | 24. [HAOI 2007]修筑绿化带 |
---|---|
输入输出 | parterre.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | BYVoid 于2008-04-11加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:76, 提交:177, 通过率:42.94% | ||||
hzoi_xx | 100 | 0.403 s | 23.44 MiB | C++ |
Soviets | 100 | 0.420 s | 13.33 MiB | C++ |
sxysxy | 100 | 0.424 s | 15.63 MiB | C++ |
Youngsc | 100 | 0.434 s | 14.29 MiB | C++ |
rpCardinal | 100 | 0.435 s | 14.29 MiB | C++ |
xrq | 100 | 0.437 s | 15.87 MiB | C++ |
rpCardinal | 100 | 0.458 s | 15.87 MiB | C++ |
根管理员 | 100 | 0.673 s | 12.28 MiB | C++ |
Soviets | 100 | 0.699 s | 9.42 MiB | C++ |
QhelDIV | 100 | 0.708 s | 31.09 MiB | C++ |
关于 修筑绿化带 的近10条评论(全部评论) | ||||
---|---|---|---|---|
回复 @liu_runda : 在边界上的时候连样例都推不对
iortheir
2017-02-22 16:51
6楼
| ||||
单调队列大法好- -
比二维RMQ好写多了 | ||||
"花坛四周修建一片绿化带"意思是说花坛不能位于A*B块的边缘。。。WA了一次
| ||||
先预处理部分前缀和,再用两次单调队列。
| ||||
ranto你不是要念单调队列的类么?
| ||||
|
为了增添公园的景致,现在需要在公园中修筑一个花坛,同时在画坛四周修建一片绿化带,让花坛被绿化带围起来。
如果把公园看成一个 $M*N$ 的矩形,那么花坛可以看成一个 $C*D$ 的矩形,绿化带和花坛一起可以看成一个 $A*B$ 的矩形。如果将花园中的每一块土地的“肥沃度”定义为该块土地上每一个小块肥沃度之和,那么,
绿化带的肥沃度 $=$ $A*B$块的肥沃度 $-$ $C*D$块的肥沃度
为了使得绿化带的生长得旺盛,我们希望绿化带的肥沃度最大。
第一行有 $6$ 个正整数 $M,N,A,B,C,D$。
接下来一个 $M*N$ 的数字矩阵,其中矩阵的第 $i$ 行 $j$ 列元素为一个整数 $X_{ij}$,表示该花园的第 $i$ 行第 $j$ 列的土地“肥沃度”。
一个正整数,表示绿化带的最大肥沃程度。
4 5 4 4 2 2 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
132
$30\%$ 的数据,$ \leq M,N \leq 50$。
$100\%$ 的数据,$1 \leq M,N \leq 1000,1 \leq A \leq M,1 \leq B \leq N,1 \leq C \leq A-2$,
$1 \leq D \leq B-2,1 \leq 肥沃度 \leq 100$。