最大化最小值问题
“最大化最小值”为了提升优化目标中表现最差的成分。这个问题在通信链路中应用比较多,如基站同时和多用户通信,每个基站到用户的通信为一个通信链路,且基站的发射功率是固定的。为了保证所有的通信链路都正常工作,应该去优化最差链路的通信情况,降低信道较好链路的基站发射功率,增加信道较差链路的基站发射功率,这是一个最大化最小值问题。
例题
一座有n(2<=n<=100000)间牛舍的小屋,牛舍排在一条直线上,第i间牛舍在xi(0<=xi<=1000000000)的位置。。一共有c头牛,为了防止牛之间互相攻击互相伤害,因此决定把每头牛都放在离其它牛尽量远的牛舍,使任意两头牛之间的最小距离尽可能大,那么,这个最大的最小距离是多少呢?
例如 输入:(3,[1,2,8,4,9]),输出:3
解释:3代表3头牛,列表[1,2,8,4,9]代表五间牛舍的位置。
把三头牛分别放在位置是1,4,8或1,4,9的牛舍时,它们间隔的最小距离最大,是3
编程思路
将C头牛放在N个点中,如果点的位置理想化,那么C个点间的最大距离是:dis=(Pmax-Pmin)/(C-1)。(即最大的坐标-最小的坐标再除以C-1)。
首先对隔间位置xi从小到大排序,然后以left=0为下界,以right&