首页 > 其他 > 详细

XYNUOJ 1248 排队打水问题

时间:2017-08-01 10:41:03      阅读:370      评论:0      收藏:0      [点我收藏+]

题目描述

有n个人排队到m个水龙头去打水,他们装满水桶的时间t1, t2 , ……, tn为整数且各不相同,应如何安排他们的打水顺序才能使他们花费的总时间最少?  只有一组输入数据哦。

输入

4 2 ( n m )

2 6 4 5 (t1 t2 …… tn)

输出

23(所有人的花费时间总和)

样例输入

4 2
2 6 4 5

样例输出

23
总是出现运行错误,思路很正确,不过还好终于过啦
//AC

#include <stdio.h>
#include<algorithm>
using namespace std;
int cmp(int a, int b)
{
return a < b;
}
int main()
{
int n, m, i, sum = 0;
int a[1000], b[1000]; //总时间=每个人打水所用时间加等待时间
scanf("%d %d", &n, &m);
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
sort(a,a+n);
for(i = 0; i < m; i++) // 前m-1个水龙头 每个人等待的时间为0
{
b[i] = a[i];
}
for(i = m; i < n; i++) //开始出现循环,第m个人花费时间=个人打水时间加等待时间
{
b[i] = b[i - m] + a[i];
}
for(i = 0; i < n; i++)
{
sum += b[i];
}
printf("%d\n",sum);
return 0;
}

 

 

XYNUOJ 1248 排队打水问题

原文:http://www.cnblogs.com/hys1258414454/p/7267103.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!