#L2979. 「THUSCH 2017」换桌
「THUSCH 2017」换桌
题目描述
班级聚会时,有 张圆桌排成一排(编号 到 ),每张桌子有 个座位(逆时针编号 到 )。吃饭时每个座位都有人,娱乐时间每个人需选择新座位,且第 桌第 个人的新座位必须在第 桌到 桌之间(可任选这些桌的任意座位)。
移动的体力消耗分两步计算:
- 桌间移动:从第 桌到第 桌对应座位,消耗为 ;
- 桌内移动:从目标桌的对应座位到最终座位,消耗为 (选择最近方向)。
详情如下图:

需设计方案使所有人的体力消耗总和最小,若无合法方案输出 no solution。
输入格式
从标准输入读入数据:
- 第一行输入两个整数 和 ;
- 接下来 行,每行 个整数描述矩阵 ,第 行第 个数为 ;
- 接下来 行,每行 个整数描述矩阵 ,第 行第 个数为 。
数据随机生成规则:
for i <- 0 to n-1
for j <- 0 to m-1
L[i,j] <- 独立等概率地得到 0 到 n-1 中的一个整数
R[i,j] <- 独立等概率地得到 0 到 n-1 中的一个整数
if L[i,j] > R[i,j] then
tmp <- L[i,j]
L[i,j] <- R[i,j]
R[i,j] <- tmp
输出格式
输出到标准输出:
- 若有合法方案,输出总体力消耗的最小值;
- 若无合法方案,输出
no solution。
样例 1
样例输入
2 4
0 1 1 0
1 0 1 0
0 1 1 0
1 0 1 0
样例输出
10
样例说明

第 桌的 和 号、第 桌的 号和 号只能坐原桌,其他人需换桌,最优方案总体力消耗为 。
样例 2
样例输入
2 4
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
样例输出
no solution
样例说明
所有人都想坐到第 桌,无合法分配方案。
样例 3
样例输入
2 10
0 0 1 1 0 0 0 1 0 0
1 1 1 0 0 1 0 0 0 0
1 0 1 1 1 0 1 1 1 1
1 1 1 1 1 1 0 0 1 0
样例输出
22
样例说明
详见附加文件。
数据范围与提示
| 测试点 | 的限制 | 的限制 |
|---|---|---|
| 1, 2 | ||
| 3-8 | ||
| 9-14 | ||
| 15-20 |