#CF1941E. Rudolf 与 k 座桥

Rudolf 与 k 座桥

Rudolf 与 k 座桥

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

一条河可以表示为 nn 行 mm 列的网格。ai,ja_{i,j} 表示第 ii 行第 jj 列的水深。第一列和最后一列是河岸,所以它们的水深均为 00。

河流网格示意图

在第 ii 行建桥时,可以在若干格子安装桥墩。在格子 (i,j)(i,j) 安装桥墩的费用是 ai,j+1a_{i,j}+1,并且必须满足:

  • 第一列和最后一列必须安装桥墩;
  • 任意相邻两个桥墩之间的距离不超过 dd。位于列 j1,j2j_1,j_2 的桥墩之间的距离定义为 ∣j1−j2∣−1|j_1-j_2|-1。

你需要选择连续的 kk 行,并在每一行独立建一座桥。求所有桥墩的最小总费用。

输入格式

第一行包含一个整数 tt,表示测试用例数。

每个测试用例的第一行包含四个整数 n,m,k,dn,m,k,d。接下来 nn 行,每行包含 mm 个整数,描述对应行的水深。

输出格式

对每个测试用例输出一行一个整数,表示连续 kk 座桥的最小总费用。

样例输入 1

5
3 11 1 4
0 1 2 3 4 5 4 3 2 1 0
0 1 2 3 2 1 2 3 3 2 0
0 1 2 3 5 5 5 5 5 2 0
4 4 2 1
0 3 3 0
0 2 1 0
0 1 2 0
0 3 3 0
4 5 2 5
0 1 1 1 0
0 2 2 2 0
0 2 1 1 0
0 3 2 1 0
1 8 1 1
0 10 4 8 4 4 2 0
4 5 3 2
0 8 4 4 0
0 3 4 8 0
0 8 1 10 0
0 10 1 5 0

样例输出 1

4
8
4
15
14

数据范围

1≤t≤10001\le t\le1000,1≤k≤n≤1001\le k\le n\le100,3≤m≤2⋅1053\le m\le2\cdot10^5,1≤d≤m1\le d\le m,0≤ai,j≤1060\le a_{i,j}\le10^6,ai,1=ai,m=0a_{i,1}=a_{i,m}=0。所有测试用例的 n⋅mn\cdot m 之和不超过 2⋅1052\cdot10^5。

子任务编号 分值 特殊限制
1 30 每个测试用例均满足 m≤20m\le20
2 每个测试用例均满足 d≤20d\le20
3 40 无特殊限制