2 shunfurh shunfurh 于 2017.01.05 22:22 提问

Fast Food
as it

Description

The fastfood chain McBurger owns several restaurants along a highway. Recently, they have decided to build several depots along the highway, each one located at a restaurant and supplying several of the restaurants with the needed ingredients. Naturally, these depots should be placed so that the average distance between a restaurant and its assigned depot is minimized. You are to write a program that computes the optimal positions and assignments of the depots.

To make this more precise, the management of McBurger has issued the following specification: You will be given the positions of n restaurants along the highway as n integers d1 < d2 < ... < dn (these are the distances measured from the company's headquarter, which happens to be at the same highway). Furthermore, a number k (k <= n) will be given, the number of depots to be built.

The k depots will be built at the locations of k different restaurants. Each restaurant will be assigned to the closest depot, from which it will then receive its supplies. To minimize shipping costs, the total distance sum, defined as

n
∑ |di - (position of depot serving restaurant i)|
i=1

must be as small as possible.

Write a program that computes the positions of the k depots, such that the total distance sum is minimized.
Input

The input file contains several descriptions of fastfood chains. Each description starts with a line containing the two integers n and k. n and k will satisfy 1 <= n <= 200, 1 <= k <= 30, k <= n. Following this will n lines containing one integer each, giving the positions di of the restaurants, ordered increasingly.

The input file will end with a case starting with n = k = 0. This case should not be processed.
Output

For each chain, first output the number of the chain. Then output an optimal placement of the depots as follows: for each depot output a line containing its position and the range of restaurants it serves. If there is more than one optimal solution, output any of them. After the depot descriptions output a line containing the total distance sum, as defined in the problem text.

Output a blank line after each test case.
Sample Input

6 3
5
6
12
19
20
27
0 0
Sample Output

Chain 1
Depot 1 at restaurant 2 serves restaurants 1 to 3
Depot 2 at restaurant 4 serves restaurants 4 to 5
Depot 3 at restaurant 6 serves restaurant 6
Total distance sum = 8

1个回答

caozhy
caozhy   Ds   Rxr 2017.01.12 00:47
已采纳
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
hoj 1005 fast food
题意:有n个饭店,从中选择k个建立仓库。给出n和k以及n个饭店的x坐标,每个饭店从离他最近的仓库获得资源,使得所有饭店到仓库的距离和最小。 思路:见代码 #include #include //m[i,j]表示在前 j 个饭店建立 i 个仓库的最小距离和 //w[i,j]表示在 d[i..j]之间建立一个仓库的最小距离和 int w[201][201], m[31][201], d[201
[ACM] HDU 1227 Fast Food (经典Dp)
Fast Food Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2173    Accepted Submission(s): 930 Problem Description The fastfood chain
Problem 1005 Fast Food
Problem 1005 Fast Food Accept: 714    Submit: 1980 Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description The fastfood chain McBurger owns several restaurants along a highw
zoj 1196 Fast Food 变种区间dp
好吧,其实我觉得这个题在一开始想的时候与区间dp还是有点差别的……虽然写出来跟区间dp确实差不多 Fast Food Time Limit: 2 Seconds      Memory Limit: 65536 KB The fastfood chain McBurger owns several restaurants along a highway. Recently,
FZU1005 Fast Food动态规划
FZU1005 Fast FoodTime Limit: 1000 mSec Memory Limit : 32768 KB 题目链接解题思路 第一反应是二分答案+贪心23333 后来还是考虑了动态规划 f[k][l][r]其中 k 代表仓库数量 l 和 r 分别代表左右区间,所以首先想到的是动规方程 f[k][l][r]=f[j][l][i]+f[k-j][i+1][r]
搜索算法 problem(1005)
1.简明题意 检测汽车拐弯的时候是否会碰到街道 2.解题思路、 汽车拐弯问题,给定X, Y, l, d判断是否能够拐弯。首先当X或者Y小于d,那么一定不能。 其次我们发现随着角度θ的增大,最大高度h先增长后减小,即为凸性函数,可以用三分法来求解。 这里的Calc函数需要比较繁琐的推倒公式: s = l * cos(θ) + w * sin(θ) - x; h = s * tan(
poj 1784 Huffman's Greed 动态规划四边形加速求最优二叉搜索树
题意: 给二叉搜索树的内部节点p1,p2...pn和外部节点q0,q1,..qn,求一棵比较数期望最小的二叉搜索树,输出期望。 分析: n^3的动态规划很容易想到,方程满足四边形优化的条件,可优化的n^2. 代码(n^3): //poj 1784 //sep9 #include using namespace std; const int maxN=256; int dp[maxN][
Fast Food
Fast FoodTime Limit:1sMemory limit:32MAccepted Submit:327Total Submit:910The fastfood chain McBurger owns several restaurants along a highway. Recently, they have
51nod 1485字母排序
这题目的原题是CF 558E但是加强了。 问题非常简单,给定一个长度为n的字符串S,有q个操作,每次操作的形式为 i j k,表示对从i到j的这一段子串进行排序,如果k=1进行非降序排序,否则进行非升序排序。 输出最后的字符串。 样例解释:Input 单组测试数据。 第一行有两个整数n, q (1 ≤ n ≤ 10^5, 0 ≤ q ≤ 50 000),表示字符串的长度和操作次数。
UVA - 662 Fast Food
题意:有n家餐馆,有m个仓库,然后后来有n个数字,代表了每个餐馆的坐标,0,0表示结束。求餐馆到离它最近仓库的距离和最小,注意仓库都是建立在餐馆上的。输出的时候,要把每个仓库离它最近的餐馆输出。数据范围是餐馆的数目是200。仓库的数目是30个。先用dis[i][j]记录第i个到j的总距离的最小值,dp[i][j]表示在前j个安i的的最小距离, dp[i][j] = min(dp[i][j],dp