题目:
有一条公路经过V个村庄,每一个村庄都处在整数的坐标点上(这里假设公路为数轴)。规划在这条公路上建立P个邮局,每一个邮局都要建在某个村庄上,要求让不同村庄的人到邮局要走的总路程最小。
分析:
用动态规划的办法,先把输入的村庄排序,然后计算只有一个邮局的情况,然后再根据已有的信息,计算p(p>=2)个邮局时的选址分布,其中p从小到大计算。
class addr_info
{
public:
int dis;
int behind;
addr_info() :dis(0), behind(0){}
};
class PostSite
{
public:
vector<vector<int>> postsite;//只有一个邮局时,两个村庄之间的选址位置
vector<vector<int>> distance;//两点之间只有一个邮局时,所有村庄要走的距离之和
vector<vector<addr_info>> totaldis;//
int size;//村庄的数目
//假设输入的村庄坐标是大于等于零的整数
vector<int> main_function(vector<