在一个格子地图上有n个人(以m表示)和n个空间(以H表示,因为你可以把它想象成房子)如图10.27所示,每个人每次能向水平方向或者竖直方向移动一个格子,每移动一格要付出1个单位的代价,直到他进入到某个房子里(每个房子只能有一个人)。试问怎么安排这些人,使房子和人一一配对,使最后的代价最小。
输入有多组测试数据,每组数据第一行为两个整数N和M,N为图的行数,M为图的列数,以下N行描述该图,N和M的值在(2~100)之间,空间数和人数为同样数字。空间不会超过100个。结束以0 0 标志。
每组数据输出一个最少付出的代价。
2 2 .m H. 5 5 HH..m ..... ..... ..... mm..H 7 8 ...H.... ...H.... ...H.... mmmHmmmm ...H.... ...H.... ...H.... 0 0
2 10 28