题目大意是有k个伞兵落到地面上,已知每个人落点的概率,有m个物资站,落地后要去最近的站。问如何安排这些物资站,使得伞兵落地后行走的期望距离的和最小。(所有落点最多1000个)。
显然是个dp题,我们可以先预处理下,对每个落点点求出他的概率总和,代表伞兵落在这点的权。可以直到物资站一定悬在伞兵落下的那些点上,所以我们就可以用dpij 表示前i个落地点中选择j个作为物资点,则很容易想到转移方程dpij=min(dpkj1+diski),其中j1=j+1, diski表示在[k,i]区间的落地点选则一个作为物资点所走距离最小值的期望(就是每点到物资点的距离乘该点概率的总和)。
现在关键就是求dis,其实我们注意到 假设对于[i,j],假设选取k作为物资点,则有
disij=∑kn=i(ak−an)pn+∑jn=k+1(an−ak)pn
而若选择k+1作为物资点,则有
dis‘ij=∑kn=i(ak+1−an)pn+∑jn=k+1(an−ak+1)pn
则相减并化简得
dis‘ij−disij=(ak1−ak)(∑kn=ipn−∑jn=k+1pn)=(ak1−ak)(sumik−sumk1j)
设tmp=dis‘ij−disij,sum可以很容易求出,这样很显然,当k增加时,tmp的值也在增加,所以,若选取k作为物资点,则要tmp≥0,否则我们可以选取k+1作为物资点,这样,可以对dis进行预处理,然后就可以得出答案
1 |
|