#P2275. [HNOI2002] 灌溉问题

    ID: 3048 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>2002各省省选平衡树湖南概率论

[HNOI2002] 灌溉问题

题目描述

久居山区的人们一直都为水源的问题而烦恼,缺水使得他们的农田无法获得好的收成。最近,一条好消息传来:政%府将提供资金为他们开凿一条水道,将唯一的水源——山顶一个湖泊中的水引入他们的村落。人们顿时都高兴了起来,他们的农田终于可以丰收了。

然而,在开凿水道时,人们却遇到了一个难题:怎样开凿才能得到最大的丰收呢?

要知道,山顶的水是非常有限的,并不可能灌溉到每一个地区。而且,不同地区的土地肥沃程度也是不一样的。虽然并非只有河流经过的地区才能被灌溉,但也不可能将水从很远的地方引过来。你现在必须想办法帮他们解决这个问题。

首先,你可以将这个山区划分成 N×NN \times N 的区域,湖泊的位置为 (x,y)(x,y)(下标从 11 开始),以及每个区域的海拔高度(开凿出的河流显然只能从严格高处往严格低流),还有每块区域的土地价值也是已知的。

同时,需要注意的是,你的河流是不允许有分支(支流)的,最多只能灌溉 MM 块土地,而且被灌溉的土地只能在离河流的 RR 格范围以内(包含对角线)。

注意:河流经过的地区土地依然保持其价值,可以选择是否对其灌溉。

你的目的就是找出一条最好的开凿河流的方法,使得能灌溉的土地价值总和最高。

输入格式

第一行为三个整数 $N,M,R\ (1 \le N \le 20,1 \le M \le \min\{N^2,100\},1 \le R \le \min\{N-1,5\})$,分别给出区域的边长,最多灌溉的土地数和被灌溉土地到河流的最大允许距离。

第二行为两个整数 x,y (1x,yN)x,y\ (1 \le x,y \le N),给出了湖泊的位置。

下面一个 N×NN \times N 的矩阵 A (1Ai,j200)A\ (1 \le A_{i,j} \le 200),其中 Ai,jA_{i,j} 表示 (i,j)(i,j) 的高度。

下面一个 N×NN \times N 的矩阵 V (1Vi,j200)V\ (1 \le V_{i,j} \le 200),其中 Vi,jV_{i,j} 表示 (i,j)(i,j) 的价值。

输出格式

输出一个整数,表示你的程序计算出的最大价值。

5 5 1
3 3
1 1 1 1 1
1 6 9 5 1
1 3 10 3 1
1 2 1 2 1
1 1 1 1 1

4 1 1 1 2
1 1 1 1 1
1 2 3 1 2
1 2 1 1 1
1 1 1 1 1

12

提示

样例解释:

以下是一种最优解。

河流流向:

(3,3)(2,3)(2,2)(3,2)(3,1)(3,3) \to (2,3) \to (2,2) \to (3,2) \to (3,1)

灌溉的土地:

(1,1),(2,2),(3,2),(3,3),(4,2)(1,1),(2,2),(3,2),(3,3),(4,2)