|
||||||||||
CDN流量调度问题Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 758 Accepted Submission(s): 182 Problem Description 题目背景:CDN在全球各个主要省市部署服务节点,为各地用户提供网络服务。以某市用户观看某点播视频为例,用户通过手机或电脑等终端连接到运营网络,发送视频点播请求,该请求将被就近调度到该市的本地CDN节点上, CDN节点给用户返回本地缓存的视频。若CDN节点没有缓存该视频,则会向上游中心CDN节点请求。若中心节点仍未缓存该视频,则会继续向租户的内容源站发起请求。各级节点在请求到内容后,会在本节点缓存。如图所示: 题目描述:有 $n$ 条网络线路,第 $i$ 条线路有 $a_i$ 的任务量,以及初始为 1 的 CDN 节点数量 $k_i$。现在可以给某些线路增加 CDN 节点数量,假如给第 $i$ 条线路增加了 $c$ 个 CDN 节点,那么其 CDN 节点总个数 $k_i$ 为 $c+1$,完成任务所需时间为 $\lceil\frac{a_i}{c+1}\rceil$。但这里有一些限制,第 $i$ 条线路的 CDN 节点总数不能超过 $t_i$,以及所有增加的 CDN 节点总数不能超过 $m$。评估最后的代价为所有网络线路完成所有任务的时间之和,即 $\sum\limits_{i=1}^{n} \lceil\frac{a_i}{k_i}\rceil$。问如何给网络线路分配 CDN 节点才能得到最小代价,输出最小代价即可。$T$ 组数据。 Input 第一行一个正整数 $T\,(1\le T \le 1000)$,表示数据组数。 对于每组数据: 第一行两个正整数 $n,m\,(1 \le n \le 100, 1 \le m \le 10000)$,表示网络线路数量以及额外分配的 CDN 节点个数上限。 第二行 $n$ 个正整数 $a_1, a_2, \cdots, a_n\,(1\le a_i \le 10000)$,表示每条网络线路的任务量。 第三行 $n$ 个正整数 $t_1, t_2, \cdots, t_n\,(1\le t_i \le 10000)$,表示每条网络线路的 CDN 节点总数上限。 保证只有 6 组数据不满足 $n \le 10,m \le 50$。 Output 对于每组数据: 输出一行一个整数,表示答案。 Sample Input
Sample Output
Source | ||||||||||
|