摘要:
题意:有k个挤奶器,c头牛..每个挤奶器和每头牛之间都有特定的距离..k个挤奶器的位置用1~k的编号表示..奶牛的位置用k+1~k+c表示每个挤奶器每天最多为m头牛挤奶..求安排每头牛到挤奶器前的最大距离的最小值..思路:先用floyd求出每头牛到每台挤奶器的最短距离..然后用二分判断最大距离最小值是多少..check()函数就是根据按距离建图后这个网络流的最大流==牛的头数其中建图先建一个超级源点..作为每头牛的前驱..他们的流量为1..然后建一个超级汇点..作为每台挤奶器的后继..他们的流量为m..如果由floyd求出的最短距离 >= 二分假设的最大距离最小值x..就连线..然后根据 阅读全文