#P2275. [HNOI2002] 灌溉问题
[HNOI2002] 灌溉问题
题目描述
久居山区的人们一直都为水源的问题而烦恼,缺水使得他们的农田无法获得好的收成。最近,一条好消息传来:政府将提供资金为他们开凿一条水道,将唯一的水源——山顶一个湖泊中的水引入他们的村落。人们顿时都高兴了起来,他们的农田终于可以丰收了。
然而,在开凿水道时,人们却遇到了一个难题:怎样开凿才能得到最大的丰收呢?
要知道,山顶的水是非常有限的,并不可能灌溉到每一个地区。而且,不同地区的土地肥沃程度也是不一样的。虽然并非只有河流经过的地区才能被灌溉,但也不可能将水从很远的地方引过来。你现在必须想办法帮他们解决这个问题。
首先,你可以将这个山区划分成 的区域,湖泊的位置为 (下标从 开始),以及每个区域的海拔高度(开凿出的河流显然只能从严格高处往严格低流),还有每块区域的土地价值也是已知的。
同时,需要注意的是,你的河流是不允许有分支(支流)的,最多只能灌溉 块土地,而且被灌溉的土地只能在离河流的 格范围以内(包含对角线)。
注意:河流经过的地区土地依然保持其价值,可以选择是否对其灌溉。
你的目的就是找出一条最好的开凿河流的方法,使得能灌溉的土地价值总和最高。
输入格式
第一行为三个整数 $N,M,R\ (1 \le N \le 20,1 \le M \le \min\{N^2,100\},1 \le R \le \min\{N-1,5\})$,分别给出区域的边长,最多灌溉的土地数和被灌溉土地到河流的最大允许距离。
第二行为两个整数 ,给出了湖泊的位置。
下面一个 的矩阵 ,其中 表示 的高度。
下面一个 的矩阵 ,其中 表示 的价值。
输出格式
输出一个整数,表示你的程序计算出的最大价值。
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
提示
样例解释:
以下是一种最优解。
河流流向:
灌溉的土地: