{"trustable":true,"sections":[{"title":"","value":{"format":"HTML","content":"在一个网格地图上有n个小人和n个房子。在每个单位时间内,每个小人可以向相邻点水平或垂直移动一步。对于每个小人,你需要支付$1的旅行费用,直到他进入房子为止。任务受到限制,每个房子只能容纳一个小人。\r\u003cbr\u003e\r\u003cbr\u003e你的任务是计算为了把这n个小人送入这n个不同的房子,你需要支付的最少金额。输入是场景的地图,\u0027.\u0027表示空地,\u0027H\u0027表示该点上有房子,\u0027m\u0027表示该点上有一个小人。\r\u003cbr\u003e\u003ccenter\u003e\u003cimg src\u003d\"CDN_BASE_URL/29da4c22cd9a35eb96b2a08b75ce8420?v\u003d1705025224\"\u003e\u003c/center\u003e\r\u003cbr\u003e你可以把网格地图上的每个点看作一个相当大的正方形,所以它可以同时容纳n个小人;而且,如果一个小人踏在有房子的网格上而没有进入那个房子,也是可以的。"}},{"title":"输入","value":{"format":"HTML","content":"输入中有一个或多个测试用例。每个案例以一行给出两个整数N和M开头,其中N是地图的行数,M是列数。输入的其余部分将是描述地图的N行。你可以假设N和M都在2到100之间,包括边界。地图上的\u0027H\u0027和\u0027m\u0027数量相同;地图上最多有100个房子。输入以N和M为0 0终止。"}},{"title":"输出","value":{"format":"HTML","content":"对于每个测试用例,输出一行,包含一个整数,即你需要支付的最少金额,以美元计算。"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e2 2\r\n.m\r\nH.\r\n5 5\r\nHH..m\r\n.....\r\n.....\r\n.....\r\nmm..H\r\n7 8\r\n...H....\r\n...H....\r\n...H....\r\nmmmHmmmm\r\n...H....\r\n...H....\r\n...H....\r\n0 0\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\r\n10\r\n28\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}