bzoj#P4716. 假摔
假摔
题目描述
【题目背景】 小Q最近喜欢上了一款游戏,名为《舰队connection》,在游戏中,小Q指挥强大的舰队南征北战,从而成为了一名 dalao。在游戏关卡的攻略中,可能由于作战过程中某艘船受到严重损伤,为避免沉没而被迫进行返航,这种情况 大家称为这艘船“假摔”。小Q最喜欢使用的一艘战舰代号为P01,但是最近这艘船总是用各种不同的姿势假摔,于 是小Q打算研究一下原因。 【题意描述】 P01的装甲可以近似看作一个nm的矩阵,每个位置上的数字代表这个位置装甲的强度。当受到炮击时,防御力为被 炮击的部分的所有位置强度之和。最近小Q发现,敌方有一种船只被称为ENE,它可以发射不同形状的炮弹,以达到 攻击装甲最薄弱处的目的。P01已经被连续k次用不同方式打成了严重损伤(假摔),于是小Q打算分析一下ENE的攻击 力。为了简单起见,我们作如下假设: 1、ENE的炮弹形状无论如何变化,火力值都为一个定值(整数,未知) 2、ENE的炮弹形状只能是长方形(ENE:呵呵),且由于口径的限制,炮弹不能太小(具体来说,对于每一发炮弹长xi 宽yi,有xmin<=xi<=n,ymin<=yi<=m) 3、当ENE的炮击命中P01的某处装甲时,被命中部分的强度之和为P01的防御力,此时,ENE的火力必须严格大于P01 的防御力,才能将其击穿并造成严重损伤(假摔)。 然而,小Q并没有得到详细的中弹数据,只知道P01用k种不同的方式假摔过。两种假摔方式不同,当且仅当受到炮 击的位置不完全相同。因此,不同形状的炮弹击穿护甲时必定可以造成不同的假摔方式,而相同形状的炮弹在不同 的位置击穿护甲也能造成不同的假摔方式。现在,小Q想估计ENE的火力最低是多少。于是,这个任务被交给了你。 举例而言,假设P01的护甲为34: 0 1 3 7 1 1 5 5 7 6 9 6 如果ENE的口径至少为22,那么直接使用22的炮弹攻击左上角22的装甲时,只要火力>=4即可造成一种假摔。如 果想造成k=3种不同的假摔方式,至少要拥有12的火力,此时可以造成如下三种假摔方式: 1、22炮弹,攻击有数字的部分,装甲值为3 0 1 - - 1 1 - -
2、2*2炮弹,攻击有数字的部分,装甲值为10
- 1 3 -
- 1 5 -
3、2*3炮弹,攻击有数字的部分,装甲值为11 0 1 3 - 1 1 5 -
可以证明,火力小于12时,无法造成3种不同的假摔方式,所以ENE的火力至少应为12。
输入格式
第一行,五个数n, m, xmin, ymin, k,空格分隔。 接下来n行,每行m个数,空格分隔,表示P01的装甲。 1<=n,m<=1000,1<=xmin<=n, 1<=ymin<=m, 1<=k<=250000,装甲值为不超过2000的非负整数。 保证火力为无穷大的ENE可以造成k种不同的假摔方式。
输出格式
仅一行,一个数,表示ENE的火力最低值。
3 4 2 2 3
0 1 3 7
1 1 5 5
7 6 9 6
12
提示
没有写明提示
题目来源
没有写明来源