题意:一套通讯系统由一些设备组成,每种设备由不同的供应商供应,每个供应商供应的同种设备有各自的带宽(bandwidth)和价格(prices)。通讯系统的带宽(B)指的是组成该系统的所有设备的带宽的最小值,通讯系统的价格(P)指的是组成该系统的所有设备的价格之和。求最大的 (B / P)。
算法:动态规划,由前i-1个供应商得到前i个供应商的情况
定义 dp[i][j]=k 为前i个供应商、B=j时最小的P为k
那么,已知前i-1个供应商的情况,如何求i的情况?
定义min_b为所有供应商中最小的B,max_b为最大的B
对第i个供应商的每个设备j
对dp[i-1][k] (min_b <= k <= max_b)
v[i][j][0] // 第i个供应商第j个设备的带宽
v[i][j][1] // 第i个供应商第j个设备的价格
t = min(k,v[i][j][0])
// 判断是否选择第i个供应商第j个设备
if (dp[i][t] < dp[i-1][k] + v[i][j][1])
poj1018 动态规划
最新推荐文章于 2022-09-21 19:55:20 发布