排队打水问题

简介: 排队打水问题Time Limit:1000MS Memory Limit:65536KDescription有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2………..tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少?Input第一行n,r (n

排队打水问题
Time Limit:1000MS Memory Limit:65536K

Description

有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2………..tn为
整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少?

Input

第一行n,r (n<=500,r<=75)
第二行为n个人打水所用的时间Ti (Ti<=100);

Output

最少的花费时间

Sample Input

3 2
1 2 3

Sample Output

7

解题思路:
//思路:用贪心算法,每次让用时最少的r个人分别去r个水龙头去打水
//总时间=每个人的打水时间+等待时间

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 #define MAXNUM 500
 5 
 6 int cmp(const void *a, const void * b)  
 7 {  
 8     return *(int *)a - *(int *)b;  
 9 }
10 int main()  
11 {  
12     int n, r, i, sum=0;
13     int a[MAXNUM],b[MAXNUM];  
14     scanf("%d%d",&n,&r);  
15     for(i=0;i<n;i++)  
16     {
17         scanf("%d",&a[i]);  
18     }
19     qsort(a,n,sizeof(int),cmp);  
20     
21     for(i=0;i<r;i++)  
22     {
23         b[i]=a[i];  
24     }
25     for(i=r;i<n;i++)  
26     {
27         b[i]=b[i-r]+a[i];
28     }
29     
30     for(i=0;i<n;i++)  
31     {
32         sum+=b[i];  
33     }
34     printf("%d\n",sum);
35     return 0;  
36 }  

 

算法二:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 #define MAXNUM 500
 5 
 6 int cmp(const void *a, const void * b)  
 7 {  
 8     return *(int *)a - *(int *)b;  
 9 }
10 int main()  
11 {  
12     int n,r,i,j,minSum;
13     int a[MAXNUM]={0},b[MAXNUM]={0};  
14     scanf("%d%d",&n,&r);  
15     for(i=0;i<n;i++)  
16     {
17         scanf("%d",&a[i]);  
18     }
19     qsort(a,n,sizeof(int),cmp);  
20     
21     j=0;
22     minSum=0;
23     for(i=0;i<n;i++)  
24     {
25         b[j]+=a[i];
26         minSum=minSum+b[j]; 
27         j++;
28         if(j==r) j=0;
29     }
30     printf("%d\n",minSum);
31     return 0;  
32 }  

 

相关文章
|
NoSQL MongoDB 索引
MongoDB副本集同步原理
MongoDB的同步原理,官方文档介绍的比较少,网上资料也不是太多,下面是结合官方文档、网上资料和测试时候的日志,整理出来的一点东西。
3708 0
|
Linux 开发工具 git
Xilinx Bit文件格式详解
Xilinx Bit文件格式详解
1149 0
Xilinx Bit文件格式详解
|
人工智能 弹性计算 边缘计算
2020年国内十大云计算商排名榜
云计算在中国经过数年发展后,技术和市场都越发成熟。随着性能和稳定的提高,成本的降低,个人和企业用户都开始逐步接受云服务,但无论在全球范围还是中国范围内,云计算市场还只是起步阶段。 中国云市场来看,表面看似巨头已经瓜分天下,但实际上,出色的新秀在不断涌现,利用自己的特色优势在细分市场中分一杯羹。笔者根据企业实力,产品性能、性价比、服务评价等方面选出了市场认可度高的中国十大公有云计算服务商云计算服务商。
|
算法 异构计算
m基于FPGA的costas环载波同步verilog实现,包含testbench,可以修改频偏大小
m基于FPGA的costas环载波同步verilog实现,包含testbench,可以修改频偏大小
452 0
|
存储 API 开发工具
UNITY与旷世Face++☀️一、注册旷世账号,并开通试用API
UNITY与旷世Face++☀️一、注册旷世账号,并开通试用API
伙伴客户案例|阿里云RPA携手金服软件助力广州酒家零售线降本增效
RPA全称机器人流程自动化(Robotic Process Automation),是一种新兴的“数字劳动力”,可以替代或辅助人完成规则明确的重复性劳动,大幅提升业务流程效率,实现企业业务流程的自动化和智能化,从而降本增效。目前,RPA解决方案的应用场景几乎涵盖了所有行业,包括银行、保险、制造、零售、医疗、物流、电子商务甚至政府和公共机构。
伙伴客户案例|阿里云RPA携手金服软件助力广州酒家零售线降本增效
|
JavaScript 前端开发
HTML+CSS+JAVASCRIPT实现——球球坠落小游戏
本文主要介绍如何使用HTML三件套来实现制作一个网页小游戏-----球球坠落,玩家需要控制键盘来移动小球落在不断上升的台阶上,避免碰到最顶部或者掉进悬崖中,看能持续多久时间,获得更高的得分
427 0
HTML+CSS+JAVASCRIPT实现——球球坠落小游戏
|
JavaScript IDE 物联网
鸿蒙系统控制LED的实现方法之经典
鸿蒙系统控制LED的实现方法之经典
370 0
鸿蒙系统控制LED的实现方法之经典
|
搜索推荐 数据挖掘 大数据
谈谈数据驱动和数据导向方法的选择
是数据做出了决定,还是你用数据帮助做出了决定?两者的选择将改变公司与数据的关系。
|
网络安全
作为一个世界级难题,DDoS攻击为什么是无解的?防御成本是硬伤
作为一个世界级难题,DDoS攻击为什么是无解的?防御成本是硬伤