贪心1--排队打水问题

一、心得

二、题目及分析

题目意思:有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。
分析:看题目意思,要使每个人平均等待时间最小,当然是接水时间小的排在前面了,因此解法如下。

1、读入n个人接水时间。

2、对等待时间A数组进行排序,序号数组B同时进行排序。这里数据n为20000,因此,必须用快排才行,同时要注意的是,排序的时候要注意等待时间是一样的时候,序号前的要排在前面,所以要用到双关健排序。

3、对每个接水时间T进行累加S即S:=s+a[i],就是下一个人的等待时间了。对每个等时间S进行累加ZS,ZS就总等待时间了。

三、代码及结果

代码中的n为100

 1 #include <iostream>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 int main(){
 6     int n,r;
 7     cin>>n>>r;
 8     int a[100];
 9     for(int i=1;i<=n;i++){
10         cin>>a[i];
11     }
12     sort(a+1,a+n+1);
13
14     //水龙头
15     int tap[100];
16     memset(tap,0,sizeof(tap));
17     int j=1;
18     int sum=0;
19     for(int i=1;i<=n;i++){
20         if(j==r+1) j=1;
21         tap[j]+=a[i];
22         sum+=tap[j];
23         j++;
24     }
25     cout<<sum<<endl;
26     return 0;
27 } 

转载于:https://www.cnblogs.com/Renyi-Fan/p/7130168.html

贪心1--排队打水问题相关推荐

  1. 贪心:排队打水—排序不等式

    题目: AcWing 913. 排队打水 有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小? 输入格式 第一行包 ...

  2. [排序不等式] 排队打水(排序不等式+贪心)

    文章目录 0. 前言 1. 排序不等式+贪心 0. 前言 经典的排序不等式问题,也是一个简单的小学数奥问题. 1. 排序不等式+贪心 913. 排队打水 贪心思路: 让最墨迹的人最后打水,即从小到大排 ...

  3. 17行代码AC_51Nod - 2133 排队接水(贪心)

    励志用少的代码做高效表达 贪心算法模板题 贪心算法简单来讲即自顶向下,求解出每个子最优解,且每个子问题不会对下一个问题产生影响 题意:n个人排队接水,问如何排序才能使总等待时间最短,(正在接水的人和没 ...

  4. P1223 排队接水(贪心算法)

    题目描述 有 nn 个人在一个水龙头前排队接水,假如每个人接水的时间为 T_iTi​,请编程找出这 nn 个人排队的一种顺序,使得 nn 个人的平均等待时间最小. 输入格式 第一行为一个整数 nn. ...

  5. 每日四题打卡-4.15:耍杂技的牛/贪心绝对值不等式-货仓选址/贪心排序不等式-排队打水/huffman哈夫曼树-合并果子

    耍杂技的牛 具体:https://blog.csdn.net/qq_27262727/article/details/105515507 农民约翰的N头奶牛(编号为1..N)计划逃跑并加入马戏团,为此 ...

  6. 题快速公交 |小希的新工作 |岁月留痕 |排队喝水 |阿迪看医生 |松雅的花园 |拜访朋友 |猴导师 |贪心的阿迪 |飞机起飞时间安排 |松雅的旅馆 |小女孩和楼梯|小希与火车|基于神经网络的垃圾分类

    写在前面:本题解旨在帮助进行作业参考,为学习升华所用.登高自卑,戒骄戒躁. 第一题:快速公交BRT 思路分析:本题考察数组基本应用,强模拟的题目. #include<iostream> u ...

  7. 排队接水(贪心算法)

    题目描述 有 nn 个人在一个水龙头前排队接水,假如每个人接水的时间为 T_iTi​,请编程找出这 nn 个人排队的一种顺序,使得 nn 个人的平均等待时间最小. 输入格式 第一行为一个整数 nn. ...

  8. 贪心:Huffman树(合并果子)、排序不等式(排队打水)

    Huffman树 AcWing 148. 合并果子 在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆. 达达决定把所有的果子合成一堆. 每一次合并,达达可以把两堆果子合并 ...

  9. 贪心——排序不等式——排队打水

    排队打水 总共n人 T=t1*(n-1)+t2*(n-2)+--+tn 按从小到大的顺序排序,等待时间最小 #include <iostream> #include <algorit ...

最新文章

  1. 数据结构|-常见数据结构整理
  2. 在用安全框架前,我想先让你手撸一个登陆认证
  3. 综述 | 基于深度学习的目标检测算法
  4. java实现两个整数相除保留一位小数
  5. python正则表达式快速入门_Python学习笔记——正则表达式入门
  6. oracle 创建用户表空间及赋权
  7. ShadeGraph教程之节点详解8:UV Nodes
  8. 从 RequireJs 源码剖析脚本加载原理
  9. 美萍网管系列软件漏洞完全剖析
  10. 格雷码和二进制相互转换
  11. 如何擦除Altera FPGA的配置器件EPCS中的内容
  12. html微信分享没有图片不显示,微信分享网页链接缩略图不显示解决方法
  13. 解决VirtualBox配置静态ip和连外网的问题
  14. cc.Layout代码设置裁剪
  15. SCAR:Scalable Consensus Algorithm 灵活共识算法
  16. 机器学习小组知识点36:FCM聚类
  17. 使用python计算三角形面积
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java面向新手投资者的虚拟股票交易系统h1o29
  19. 2022年股权转让怎么计算个人所得税
  20. iHerb中国这个app怎么样?iHerb中国邮政EMS与顺丰速运区别点在哪里?

热门文章

  1. Error和Exception有什么区别?(还在总结)
  2. Shell脚本中的函数、数组
  3. AD中批量增加带密码用户
  4. springsession 实现session 共享
  5. nginx1.9基于端口的四层负载均衡实践,基于端口的转的负载均衡
  6. 恢复联想键盘F1-F12标准模式
  7. linux常用工具及命令
  8. U盘快速​安装Ubuntu系统
  9. 在gem5的full system下运行 x86编译的测试程序 running gem5 on ubuntu in full system mode in x86...
  10. Deep learning:十九(RBM简单理解)