我的同事向我介绍了一个在线评测网站上的练习题,基本上是一个小镇疏散计划的图形解决问题。
我不需要答案(也不想要),只需要一个建议,关于如何解决这个问题,因为我对这类问题还比较陌生。
问题包括城镇建筑物、工人和防核避难所。我必须构建一个算法,将每个建筑物的工人分配到一个或多个防核避难所,但不能使某些避难所过度拥挤而其他避难所几乎没有人(否则我会让工人去最近的避难所)。
问题在此处:http://acm.timus.ru/problem.aspx?space=1&num=1237。
如果它已经下线,请使用Google缓存版本:http://webcache.googleusercontent.com/search?q=cache:t2EPCzezs7AJ:acm.timus.ru/problem.aspx%3Fspace%3D1%26num%3D1237+vladimir+kotov+evacuation+problem&cd=1&hl=pt-PT&ct=clnk&gl=pt。
到目前为止,我为每个建筑物获取最近的避难所,并将该建筑物中的工人数量移动到该避难所的容量。然后移到下一个建筑物。但是有时候工人数量大于避难所的容量,在这种情况下,当我遍历完每个建筑物后,我会再次遍历它们并应用相同的算法,直到每个建筑物都没有工人,问题是这几乎不是解决它的最佳方法。
欢迎任何提示,请不要觉得我在寻求答案,我只想得到正确解决方向的建议。
提前感谢。
我不需要答案(也不想要),只需要一个建议,关于如何解决这个问题,因为我对这类问题还比较陌生。
问题包括城镇建筑物、工人和防核避难所。我必须构建一个算法,将每个建筑物的工人分配到一个或多个防核避难所,但不能使某些避难所过度拥挤而其他避难所几乎没有人(否则我会让工人去最近的避难所)。
问题在此处:http://acm.timus.ru/problem.aspx?space=1&num=1237。
如果它已经下线,请使用Google缓存版本:http://webcache.googleusercontent.com/search?q=cache:t2EPCzezs7AJ:acm.timus.ru/problem.aspx%3Fspace%3D1%26num%3D1237+vladimir+kotov+evacuation+problem&cd=1&hl=pt-PT&ct=clnk&gl=pt。
到目前为止,我为每个建筑物获取最近的避难所,并将该建筑物中的工人数量移动到该避难所的容量。然后移到下一个建筑物。但是有时候工人数量大于避难所的容量,在这种情况下,当我遍历完每个建筑物后,我会再次遍历它们并应用相同的算法,直到每个建筑物都没有工人,问题是这几乎不是解决它的最佳方法。
欢迎任何提示,请不要觉得我在寻求答案,我只想得到正确解决方向的建议。
提前感谢。