排队打水问题

贪心算法动态规划-排队打水、导弹问题、活动选择 排水打水问题 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1,t2,…,tn为整数且各不相等,应如何安排他们的打水顺序才能使他们花费的总时间最少? 每个人打水的时间 = 排队的时间 + 实际打水的时间,本题假设一个人打好水,排在他后面的人接着打水的这个切换过程不消耗时间。 比如,有2个人A和B,他们打水的时间分别是3和2,只有1个水龙头,这时,如果A先打水,B后打水,那么A和B打水的时间分别为3、3+2(B排队3分钟)。 因此,所有人打水的总时间就是每个人的打水时间及每个人的排队时间的总和。 输入格 阅读详情

问题描述:

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

输入说明:

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

输出说明:

最少的花费时间

范例演示:

        输入:3 2
                   1 2 3

        输出:7

解题思路:

        每个水龙头都要排人,而每个水龙头排的第n个人的等待时间就是该水龙头前面n-1个人打水时间总和,而该人打水所用时间就是他的等待时间加上他打水的时间,每个人都是这样,而每个人的用时加起来就是总用时。让总用时最少就要让每个人的时间最少,而每个人打水时间不会变,那么就要让每个人等待时间最少,那就要求排在这个人前面的人的打水时间要比他少。

代码如下:

#include<iostream>
#include<algorithm>

using namespace std;

int main()
{
    int n,r,sum=0;
    cin>>n>>r;
    int time[n],i,cnt=0;
    for(i=0; i<n; ++i) cin>>time[i];
    sort(time,time+n);
    int arr[r]= {0};//arr数组是储存每个水龙头的等待时间的
    for(i=0; i<r; ++i)
    {
        if(cnt==n) break;
        sum+=arr[i];//每到一个水龙头sum就加一次等待时间
        arr[i]+=time[cnt];//每上去一个人接水每个水龙头的等待时
                          //间就多上这个人的时间
        sum+=time[cnt++];//每排一个人都要加上这个人所需时间
        if(i==r-1) i=-1;//放完最后一个水龙头又排第一个
    }
    cout<<sum;
    return 0;
}

蓝桥杯 ADV-148 排队打水问题 蓝桥杯 ADV-148 排队打水问题 问题描述 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2…………tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少? 输入格式 第一行n,r (n<=500,r<=75) 第二行为n个人打水所用的时间Ti (Ti<=100); 输出格式 最少的花费时间 样例输入 3 2 1 2 3 样例输出 7 思路解... 阅读详情

相关推荐

C++贪心算法

题目描述 有 n个人排队到 r个水龙头去打水,他们装满水桶的时间 t_1,t_2,...,t_n 为整数且各不相等,应如何安 排他们的打水顺序才能使他们花费的总时间最少?每个人打水的时间 = 排队的时间 + 实际打水的时间,本题假设一个人打好水,排在他后面的人接着打 水的这个切换过程不消耗时间。比如,有 2 个人 A和 B ,他们打水的时间分别是 3 和 2 ,只有 1个水龙头,这时,如果 A 先打水,B 后打水,那么 A 和 B 打水的时间分别为 3、3+2( B 排队 3 分钟)。

mhx20100612的博客 1231

排队打水问题——贪心

问题描述 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2………..tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少?输入格式 第一行n,r (n&lt;=500,r&lt;=75) 第二行为n个人打水所用的时间Ti (Ti&lt;=100);输出格式 最少的花费时间样例输入 3 2 1 2 3样例输出 7 思路:这道题关键就是理解题意 这道题最后要求 ...

小七的博客 5179

XYNU 1248 排队打水问题(water)—贪心算法

欢迎访问XYNUOJ 1248: 排队打水问题(water) 时间限制: 1 Sec  内存限制: 128 MB 提交: 27  解决: 6 [提交][状态][讨论版][Edit] [TestData] 题目描述 有n个人排队到m个水龙头去打水,他们装满水桶的时间t1, t2 , ……, tn为整数且各不相同,应如何安排他们的打水顺序才能使他们花费的总时间最少?  只有

69小石头的博客 1817

贪心算法——排队打水问题

*/6.3 排队打水问题:有n个人排队到r个水龙头去打水,他们装满水桶的时间为t1,t2,…,tn为正整数且个不相等。 应如何安排他们打水顺序才能使他们花费的时间最少。 算法分析:时间总和=等待时间+装水时间。采用贪心思想。先sort(),默认将装水时间从小到大排序。 n个人,r个水龙头,可以以水龙头为序将队伍序分割成n/r个小组,每小组的成员分别对应r个位置。 实际上就是将人依序分成r个小队打水...

yutian74的博客 6496

简单的图书管理系统---SpringBoot+mysql通过前后端分离实现增删查改

SpringBoot+mysql通过前后端分离实现增删查改 上篇文章介绍了如何写后端接口 SpringBoot连接MySQL获取数据写后端接口 这篇文章,我们就介绍一下怎么写前端 点击修改跳出修改界面,点击添加书籍跳出添加书籍界面 点击删除,直接删除一行数据 其他的也没什么解释了,直接上代码(看不懂的可以私聊我哟) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>

爱笑的博客 2014

Materials - UE5中的PivotPainter

可以使用3DS Max Script中的脚本(Pivot Painter)对模型进行处理,让每个Element都有自己的Pivot Point,来方便控制和制作一些特殊的顶点动画效果;

GT的虚幻引擎文档 1288

排队打水问题(贪心)

排队打水问题(贪心算法)        有n个人排队到r个水龙头打水,他们装满水的时间为 t1t_1t1​,t2t_2t2​,t3t_3t3​,……,tnt_ntn​为整数且各不相等,应如何安排他们打水顺序才能使他们花费时间最少(含等待时间)? 。#### 【分析】      &...

qq_45949914的博客 8246

104基于深度学习识别是AI生成还是真实图片

的可视化界面,通过点击左侧可以加载要识别的检测对象图片,点击中间的识别按钮,会识别出结果,识别结果在右侧显示,当前识别的图片是真实的图片,非假图片。有兴趣的小伙伴也可以自行扩充数据集,或训练自己的数据集。文本,分别存放了图片路径和对应的标签。文本里面的数据,并将训练好的模型也保存在本地。即可加载训练好的模型,真假图片进行识别。本期给大家介绍的是基于深度学习识别是。代码整体是非常简便的,总共三个。个文件夹分别是真图和。

xcvxvfgdfgfh的博客 2261

Java实现 蓝桥杯VIP 算法提高 排队打水问题

算法提高 排队打水问题 时间限制:1.0s 内存限制:256.0MB 问题描述   有n个人排队到r个水龙头去打水,他们...

Marcus 3528

使用VIVADO 2019.1 搭建以太网接口

以太网 MAC+SGMII->GMII接口转换 以FPGA V7为例,搭建一个千兆以太网接口。运行环境为Vivado2019.1。板卡的FPGA V7与千兆网口芯片采用SGMII互联,最终实现FPGA与上位机之间的千兆网卡通信,实际实现时,V7采用MAC + GMII ->SGMII的结构。SGMII接口使用1G/2.5G Ethernet PCS/PMA or SGMII ip核,MAC层使用Tri Mode Ethernet MAC ip核。 由于MAC层IP不支持SGMII接口,因此需要G

qq_44641513的博客 8415

UFS 3.1协议分析(第五章) -- UFS协议栈

ContentsUFS顶层架构应用层UFS命令集UFS 设备管理器UFS任务管理器传输层互连层 UFS顶层架构     UFS基于SCSI SAM架构模型定义了一个完整的协议栈,从上到下依次为应用层、传输层、数据链路层、物理层。UFS使用MIPI联盟的UniPro作为数据链路层和MIPI的M-PHY作为物理层,两者合起来称之为互连层(UFS InterConnect Layer) 应用层     应用层包括UFS命令集、设备管

Frank_sample的专栏 7369

19 排队打水问题

19 排队打水问题 作者: Turbo时间限制: 1S章节: 其它 问题描述 : 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2…………tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少? 输入说明 : 第一行n,r (n<=500,r<=75)   第二行为n个人打水所用的时间Ti (Ti<=100); 输出说明 : 最少的花费时间 输入范...

内在的天空 627

【实战指南】从零构建UNet多分类分割数据集:标注、转换与训练全流程

本文提供了一份从零构建UNet多分类分割数据集的完整实战指南。详细介绍了使用Labelme进行图像标注的核心技巧与规范,并通过Python脚本将标注结果转换为模型可用的VOC格式。最后,指导如何修改经典的PyTorch版UNet代码,以适配自定义数据集并进行训练与测试,帮助读者完成从数据准备到模型训练的全流程。

arduino9maker的博客 287

排队打水问题(water)

题目描述 有n个人排队到m个水龙头去打水,他们装满水桶的时间t1, t2 , ……, tn为整数且各不相同,应如何安排他们的打水顺序才能使他们花费的总时间最少?  只有一组输入数据哦。 输入 4 2 ( n m ) 2 6 4 5 (t1 t2 …… tn)   输出 23(所有人的花费时间总和) 样例输入 4 2 2 6 4 5 样例输出 23 代码: ...

一个和代码打交道の小孩 2883

训练救星!EMA多尺度注意力让YOLOv11轻松攻克自定义数据集不涨点难题

在目标检测模型训练中,自定义数据集不涨点是阻碍算法落地的核心痛点之一。传统训练策略在数据分布特殊、样本量有限的场景下极易陷入收敛停滞,而 EMA(指数移动平均)结合多尺度注意力的方案,在自定义数据集上实现mAP 提升 6.5%,同时让训练曲线从“平缓停滞”转为“持续攀升”,彻底解决创新点在自有数据上的性能瓶颈。本教程将带你从原理到实践,通过 EMA 多尺度注意力为 YOLOv11 注入训练稳定性,让你的自定义数据集模型训练实现质的飞跃。EMA 衰减率:小样本数据集建议将decay。

FJN110的博客 160

让 ABAP 复杂内表优雅“喂饱”:Complex Internal Table Filling 全面实战指南

本文为ABAP开发者系统梳理了复杂内表的填充与复制方法。重点介绍了work area的两种声明方式、APPEND操作的多形态用法及其初始值语义,以及VALUE #( )构造器的逐行与整表写法。同时讲解了CORRESPONDING的同名字段映射功能,帮助开发者在"航司与航线"等复杂业务场景中实现最佳实践。文章还涵盖内存优化、可读性建议和常见误区,提供可运行样例,适用于ABAP On-Premise和SAP BTP环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 168

蓝桥杯 算法提高 排队打水问题 Python

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

离暑假还有41天的博客 1402

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

2796: 【基础】排队打水问题

2796: 【基础】排队打水问题 时间限制: 1 Sec 内存限制: 32 MB 提交: 849 解决: 457 [提交] [状态] [讨论版] [命题人:ghost79] 题目描述 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1,t2,...,tn为整数且各不相等,应如何安排他们的打水顺序才能使他们花费的时间最少? 输入 第1行,两个整数n(1<=n<=500)和r(1...

做一只熊猫不好吗? 620

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[蓝桥杯][算法提高][vip] 排队打水问题

蓝桥杯 ADV-148 算法提高 排队打水问题(贪心) 问题描述   有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2…………tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少? 输入格式   第一行n,r (n&amp;lt;=500,r&amp;lt;=75)   第二行为n个人打水所用的时间Ti (Ti&amp;lt;=100); 输出格式   最少的花费时间 样例输入 3 2 ...

cp0328的博客 3882

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

1228. 排队打水问题

问题描述有 n 个人排队到 r 个水龙头去打水,他们装满水桶的时间 t_1,t_2,...,t_n 为整数且各不相等,应如何安排他们的打水顺序才能使他们花费的总时间最少?每个人打水的时间 = 排队的时间 + 实际打水的时间,本题假设一个人打好水,排在他后面的人接着打水的这个切换过程不消耗时间。比如,有 2 个人 A 和 B ,他们打水的时间分别是 3 和 2 ,只有 1 个水龙头,这时,如果 A 先打水,B 后打水,那么 A和 B 打水的时间分别为 3 、3+2( B 排队 3 分钟)。

chenminggui123的博客 334
上一篇: 盾神与积木游戏 (贪心典例)
下一篇: 最棒的回文
Merran_
博客等级 码龄5年 10粉丝 30原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Merran_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值