10013. 接水问题(失败)

【python】排队接水问题(贪心) 输入包括两行内容。第一行是一个数n(1 ≤ n ≤ 1000),表示排队的人数。第二行包含n个数,分别是T1,T2,…,Tn,用空格隔开,代表每个人接水所需的时间。 阅读详情

学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若当前接水人数n’不足m,则只有n’个龙头供水,其它m−n’个龙头关闭。 现在给出n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。

样例输入1[复制]
5 3
4 4 1 2 1
样例输出1[复制]
4

样例输入2[复制]
8 4
23 71 87 32 70 93 80 76
样例输出2[复制]
163

输入格式:

第1 行2 个整数n 和m(1 ≤ n ≤ 10000,1 ≤m≤ 100, m≤ n),用一个空格隔开,分别表示接水人数和龙头个数。
第2行n个整数,表示每个人需要接水的量及排队的顺序。

输出格式:

只有一行,1 个整数,表示接水所需的总时间。

提示:

样例1说明:
第1 秒,3 人接水。第1 秒结束时,1、2、3 号同学每人的已接水量为1,3 号同学接完水,4 号同学接替3 号同学开始接水。 
第2 秒,3 人接水。第2 秒结束时,1、2 号同学每人的已接水量为2,4 号同学的已接水量为1。 
第3 秒,3 人接水。第3 秒结束时,1、2 号同学每人的已接水量为3,4 号同学的已接水量为2。4 号同学接完水,5 号同学接替4 号同学开始接水。

第4 秒,3 人接水。第4 秒结束时,1、2 号同学每人的已接水量为4,5 号同学的已接水量为1。1、2、5 号同学接完水,即所有人完成接水。 
总接水时间为4 秒。
NOIP普及组2010

限制:

每个测试点1s。

样例 1 :

输入:
5 3
62 60 15 30 52
输出:
97

样例 2 :

输入:
10 4
4 37 71 16 28 34 28 87 39 43
输出:
124

C语言

#include <stdio.h>
int main()
{
	int n,m;
	scanf("%d,%d",&n,&m);
	int s[n],h[m];
	for(int i=0;i<n;i++)
	{
		scanf("%d",&s[i]);
	}
	
	for(int i=0;i<m;i++)
	{
		h[i]=s[i];
	}
	
	for(int i=m;i<n;i++)
	{
		int min=h[0],count=0;
		for(int j=1;j<m;j++)
		{
			if(h[j]<min&&h[j]!=0)
			{
				min=h[j];
				count=j;
			}
		}
		h[count]+=s[i];
	}
	int max=h[0];
	for(int i=1;i<m;i++)
	{
		if(max<h[i])
			max=h[i];
	}
	printf("%d",max);
	return 0;	
}

评测状态

答案错误        0

语言: C

用时: 0 ms        内存: 1088 kb        代码长度: 441

算法基础——排队打水(贪心算法) 利用前缀和思路解题,如下图所示,图中已经默认1,2,3,4,5…不难看出,某个人的等待接水的时间之和就是他前一个的前缀和数组(即4号的排队的等待时间就是s[3],5号的排队时间就是s[4]),因此,总的所有人的等待时间之和就是s[0]+s[1]+s[2]+s[3]+s[4]。典型的贪心问题,根据我们的直觉判断就是,让装满水时间越短的人排在越靠前面的位置,那么所有人等待的时间之和就会最短!(因为越排前面打水的人,后面等待的人数就越多,即有更多的人需要等待【排前面打水人所用的时间t】,导致等待时间之和增加)。 阅读详情

相关推荐

【例6.1】排队接水 贪心算法

时间限制: 1000 ms 内存限制: 65536 KB【题目描述】有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。共两行,第一行为n(1≤n≤1000);第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。10291.90。

m0_46183615的博客 1670

1233:接水问题

【题目描述】 学校里有一个水房,水房里一共装有m个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。 现在有n名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n编号,i号同学的接水量为wi。接水开始时,1到m号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j完成其接水量要求wj后,下一名排队等候接水的同学k马上接替j同学的位置开始接水。这个换人的过...

C_Dreamy的博客 2556

FPGA+CMV4000实战:从零搭建20fps成像系统的5个关键步骤(附避坑指南)

本文详细介绍了如何从零搭建基于FPGA和CMV4000传感器的20fps成像系统,涵盖硬件选型、SPI通信优化、LVDS数据采集、DDR2内存管理及系统集成等5个关键步骤。特别针对CMV4000传感器的SPI配置和高速数据处理的常见问题提供实用解决方案,帮助开发者避免常见陷阱,提升成像系统性能。

weixin_42628688的博客 427

贪心算法——排队接水

无论顺序怎么排的,第二个人得等第一个人的时间,一直到第n个人都得等待第一个人的时间, 所以第一个人接水的时间被等待了n-1次...... 以此类推,第二个人的时间被等了n-2次...... 知道n-1个人的时间被等了1次 所以总共的时间为: ans += (n-i) * a[i].t; // i从1开始到n-1结束,a[i]代表第i个人花费的时间 那么怎么使这个时间和最少呢? 显然,n-i是固定的,当被等待时间次数最多的时间是花费的最少时间时即为最优解。 所以将每个人花费的时间从小到大排序就

青春无问西东 岁月自成芳华 8707

解密QtIFW高级配置:用XML+JS打造品牌化安装界面(含动态水印/多语言技巧)

本文深入探讨了如何利用Qt Installer Framework(QtIFW)的高级配置功能,通过XML和JavaScript打造专业、品牌化的软件安装界面。文章详细解析了企业级项目目录结构设计、模块化配置文件编写、CSS样式表深度定制、动态水印实现以及智能多语言许可证管理等核心技巧,旨在帮助开发者超越基础打包,为Windows和Linux平台构建具有卓越用户体验的安装程序。

read5的博客 528

【创作赢红包】Gurobi学术版证书更新与Python环境配置全攻略

本文详细解析了Gurobi学术版证书过期后的完整更新流程与Python环境配置方法。从彻底清理旧版残留、手把手注册获取新许可证,到软件安装、证书激活,最后重点讲解如何将gurobipy接口正确配置到Python的site-packages目录,并提供了常见问题排查方案,帮助用户高效解决证书与配置难题。

efc1234567的博客 612

1452.接水问题(思维)

Description 学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为 1。 现在有 n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从 1到 n 编号,i 号同学的接水量为 wi。接水开始时,1 到 m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学 j 完成其接水量要求 wj后,下一名...

weixin_30780221的博客 332

128、点云配准与ICP:经典配准算法与深度学习配准

上周调试一台双臂协作机器人,左手持结构光相机扫描桌面上的随机堆叠工件,右手准备执行抓取。问题出在“对齐”这一步——相机扫描得到的点云和CAD模型点云之间差了大约15度的旋转,导致抓取姿态计算出来直接怼到桌面上。我第一反应是“ICP跑一下不就行了”,结果跑了三分钟,误差纹丝不动,甚至越迭代越发散。后来查了日志才发现,初始位姿给得太离谱,ICP直接掉进了局部最优。这个场景太典型了——很多人以为点云配准就是调个ICP库函数,实际工程里坑比想象中多得多。今天这篇笔记,咱们把点云配准这件事从头捋一遍。

sundong_81的博客 42

贪心算法(算法竞赛、蓝桥杯)--排队接水问题

接水问题贪心找最优解

lmessi10_的博客 1167

图解B+树的插入过程

B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助! 最近我一直在思考 B+ 树的高度是由什么决定的。知道我了解了 B+ 树的插入过程,才有一种恍然大悟的感觉! 网上的一些资料杂乱无章,不同的数据库可能还有对 B+ 树有不同的实现。但是万变不离其宗,B+ 树的定义,大致如下所示: 总结一下,B+ 树有下面 5 个重要的特点。 B+ 树包含 2 种类型的结点: 内部结点(也称索引结点)和叶子结点。 根结点本身即可以是内部结点,也可以是叶子结点。 根结点的关键字个数最

愿君出走半生,归来时仍是少年 2133

使用Python爬取在线图书馆的图书馆藏和阅读记录

通过使用Python编写爬虫程序,我们可以从在线图书馆上获取图书馆藏和阅读记录,帮助人们更好地管理和利用图书馆资源。本文简要介绍了爬虫程序的准备工作、网页解析和数据提取、数据的保存和处理的关键步骤,并提供了一个示例代码。在实际应用中,我们需要注意遵守在线图书馆的使用规则和爬虫道德准则,确保合法、合规地进行爬取操作。以上仅为概述,实际应用的过程中可能需要根据具体需求进行适当的调整和改进。

2201_76125393的博客 729

一本通 2.6.1 贪心算法

一本通 贪心算法 题目解析

xuqw11111的专栏 1369

海思SD3403/SS928V100开发(6)单路GMSL-MIPI-YUV相机视频输入调试

硬件连接:森云GMSL相机 -> GMSL 解串器 -> SD3403 MIPI0暂时先进行单路视频输入通路调试。

jzwjzw19900922的博客 1932

C++算法之贪心算法

贪心算法是一种求解最优解问题的算法,它的核心思想是每一步都采取当前状态下最优的选择,从而最终得到全局最优解。它是C++重要的一种算法。本文会介绍贪心算法。

现役 OIer。 6765

C#上位机+YOLO实时目标检测:摄像头采集+多线程推理+精度调优全流程

标注数据集:使用LabelImg工具标注目标对象,按YOLO格式整理数据集;模型训练:使用Ultralytics库训练自定义模型,提升特定目标的检测精度;训练参数优化:增加训练轮数(epochs=100200)、调整批次大小(batch=1632)、使用数据增强(flip、mosaic等)。摄像头采集:封装通用采集类,支持USB摄像头/网口相机,实现稳定帧读取与异常处理;多线程推理:采用“采集线程+推理线程+UI线程”解耦架构,使用线程安全队列传递帧数据,彻底解决界面卡顿;核心封装。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 673

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

贪心算法之排队接水

n个人一起排队接水,第i个人需要b[i]的时间来接水。 1 &amp;amp;lt;= n &amp;amp;lt;= 1000 0 &amp;amp;lt;= b[i] &amp;amp;lt;= 1000 同时只能有一个人接水,正在接水的人和没有接水的人都需要等待。 完成接水的人会立刻消失,不会继续等待。 你可以决定所有人接水的顺序,并希望最小化所有人等待时间的总和。 分析问题: 由于排队时,越靠近前面的计算次数越多,因此越小的排在越前面得出的结果越小,所.

qq_43246915的博客 2551

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【贪心算法】一文让你学会“贪心”(贪心算法详解及经典案例)

为使得参加晚会的同学所获得的纪念品价值相等均衡,要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。现在已知n个苹果到达地上的高度Xi,椅子的高度a,陶陶手伸直的最大长度b,陶陶所剩的力气s,陶陶摘一个苹果需要的力气Yi,求陶陶最多能摘到多少个苹果。又是一年秋季的,陶陶家的果树结了n个果子,陶陶又跑去摘苹果,这次他有一个a公分的椅子,当他手够不看时,他会站到椅子上再试试。输入的第一行是两个用空格隔开的整数,代表糖果盒的个数n和给定的参数x。

L23qweX的博客 655

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

接水问题(C++)

校里有一个水房,水房里一共装有 m个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为 1。名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。,用一个空格隔开,分别表示接水人数和龙头个数。个换人的过程是瞬间完成的,且没有任何水的浪费。名同学准备接水,他们的初始接水顺序已经确定。号同学各占一个水龙头,并同时打开水龙头接水。出只有一行,1个整数,表示接水所需的总时间。,每两个整数之间用一个空格隔开,后,下一名排队等候接水的同学。秒结束时完成接水, 则。同学的位置开始接水。

2301_80670815的博客 1428

CSP-J-2010-接水问题

模拟

weixin_60869516的博客 723

【贪心算法】排队接水

有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti​,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。

weixin_45795497的博客 712

信息学奥赛一本通 1233:接水问题 | 1950:【10NOIP普及组】接水问题 | OpenJudge NOI 1.9 15 | 洛谷 P1190 [NOIP2010 普及组] 接水问题

【题目链接】 ybt 1233:接水问题 ybt 1950:【10NOIP普及组】接水问题 OpenJudge NOI 1.9 15:接水问题 洛谷 P1190 [NOIP2010 普及组] 接水问题 【题目考点】 1. 模拟 【解题思路】 接水顺序确定,接水规则确定,整个接水流程就已经确定了,不需要通过算法决定任何事情,这是一个考察模拟的题。 设数组time,time[i]表示第i个水龙头可以使用的时刻。 time数组中最小值的下标为mni,那么当前情况下一定是第mni号水龙头先给上一个人接完水后空了出来

君义NOIP的博客 3202

接水问题(c++题解)

一道非常**的贪心题,希望有人看!第 4 秒结束时,1,2 号同学每人的已接水量为 4,5 号同学的已接水量为 1。第 3 秒结束时,1,2 号同学每人的已接水量为 3,4 号同学的已接水量为 22。第 11 秒结束时,1,2,3 号同学每人的已接水量为 1,3 号同学接完水,4 号同学接替 3 号同学开始接水。第 22 秒结束时,1,2 号同学每人的已接水量为 2,4 号同学的已接水量为 1。现在给出 n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。

hb_zhyu的博客 1309

C++ 贪心算法-接水问题 算法自我理解A.A

【代码】C++ 贪心算法-接水问题 算法自我理解A.A。

icudhdhd的博客 905

接水问题(信息学奥赛一本通-T1233)

【题目描述】 学校里有一个水房,水房里一共装有m个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。 现在有n名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n编号,i号同学的接水量为wi。接水开始时,1到m号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j完成其接水量要求wj后,下一名排队等候接水的同学k马上接替j同学的位置开始接水。这个换人的过程是...

Alex_McAvoy的博客 6045

第四章 贪心算法课后作业 排队接水

第四章 贪心算法课后作业 排队接水

正在努力的网安小菜鸟! 921

【算法】接水问题-自己的思考和解决过程。

最近,喜欢在oj上刷算法了。。还是新手,希望有人来一起交流交流。。 贴上接水问题的描述:   学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的 供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1 到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打 开水龙头接水。当其中某名同学j...

Luoseaspring 思想天地 Nine Of Thought 4349
上一篇: 10007. ISBN号码
下一篇: 编写第一个C#应用程序——Hello, C#
DXB2021
博客等级 码龄5年 307粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值