问题3351--建学校3351: 建学校
时间限制: 1 Sec 内存限制: 512 MB
提交: 0 解决: 0
[提交] [状态] [讨论版] [命题人:]题目描述
汶川大地震发生已经有一年了。地震灾区的重建工作有许多工作要做,其中学校的重建被放在了重要的议事日程上:
在一条新建的公路两旁,有n个村庄,编号为1,2,……,n。( 3<=n<=100)每个村庄有一定数量的小学生,村庄之间的距离也已知,例如:n=3时,下图给出了三个村庄的相关情况:
村庄1的学生数24,村庄2 的学生数18,村庄3的学生数31。
村庄1与村庄2之间距离为10,村庄2和村庄3之间的距离为8。
10 8
①-----------②-----------③
24 18 31
现在要在村庄中建K个学校(1<=K<=10),比如上图中的k=2时,建二个学校,此时有三种方案:
(1) 学校设在村庄1、2, 村庄3的学生走到村庄2,学生走的距离和为:31*8=24;
(2) 学校设在村庄1、3, 村庄2的学生走到村庄3(就近入学),学生走的距离和为:18*8=144;
(3) 学校设在村庄2、3, 村庄1的学生走到村庄2,学生走的距离和为:24*10=240;
显然方案2最好。程序要求输出最佳方案中的学生所走的距离和。
输入
第一行2个整数,表示村庄数n,学校数k
第二行n个整数,表示每个村庄学生数(数量在1-100之间)
第三行n-1个整数,表示村庄i到村庄i+1之间的距离(每个数在1-100之间)。
输出
一个整数,表示学生走的距离和的最小值。
样例输入
3 2
24 18 31
10 8
样例输出
144
来源/分类
[提交] [状态]