习题 17:排队提水问题★★
N个人同时提水到一个水龙头前提水
因为大家的水桶大小不一,所以水龙头注满第i(i=1,2,3......N)个人所需要的时间是T(i)
编写一个程序,对这N个人使他们花费的时间总和最小,并求出这个时间
例如有三个人a,b,c,用时分别是2,1,3
排队顺序为c,b,a的时候,c要等待3,b要等待4,c要等待6,总和为3+4+6=13
排队顺序为a,b,c的时候,a要等待2,b要等待3,c要等待6,总和为2+3+6=11
11更小,要找出这样的最小值。
输入(有多组测试数据,每组数据里第一行为n(1<=n<=10000),表示人数,第二行为T(i),
n是多少就输入多少,表示各人要注满水桶的时间,中间用空格分隔):
3
2 1 3
输出(花费时间总和的最小值):
10
难度:easy
http://www.yzfy.org/dis/listpost.php?tid=18&extra=page%3D1
TIPS: 由题意可知,要想总的时间花费最小。首先应把输入的数据进行升序排序(即时间花费少的人先去提水),然后计算的总时间就是最小的。程序中使用排序的方法为冒泡排序。
// queue.cpp : Defines the entry point for the console application.
//#include "stdafx.h"#define MAXN 10000
int queue[MAXN];int main(int argc, char* argv[])
{int n, i, j, tmp, ans;ans =0;scanf("%d", &n);for(i=0; i<n; i++) scanf("%d", &queue[i]);for(i=0; i<n-1; i++) //数组queue中按升序排列for(j=i+1; j<n; j++){if(queue[i]>queue[j]){tmp = queue[i];queue[i] = queue[j];queue[j] = tmp;}}for(i=n-1; i>=1; i--)for(j=0; j<=i-1; j++)queue[i]+=queue[j];for(i=0; i<n; i++) ans+=queue[i];printf("%d\n", ans);return 0;
}
习题 17:排队提水问题★★相关推荐
- 陶哲轩实分析习题17.1.2
陶哲轩实分析习题17.1.2 转载于:https://www.cnblogs.com/yeluqing/archive/2012/09/10/3828300.html
- C语言课后习题(17)
谭浩强C语言第五版的一些课后习题 第五章 第十题 求分数和 int main(){double i=1.0,j=2.0;//i为分母 j为分子 j/idouble ans=0;//累计结果 int n ...
- 笨办法学python3 x_笨办法学习Python3.x 习题17
原博文 2018-07-08 22:47 − 1 from sys import argv 2 from os.path import exists 3 4 script, from_file, to ...
- 关于计算机网络传输介质 下列叙述正确的是,《计算机基础》习题1-7
4. 算法的基本结构中包括( ) A.顺序结构 B.选择结构 C.循环结构 D.逻辑结构 5.关于Excel图表的数据源,下列叙述不正确的是( ) A. 可以修改图表的数据源 B. 图表的数据源必须是 ...
- 17 | 排队也要讲效率:HTTP的连接管理
我曾经提到过 HTTP 的性能问题,用了六个字来概括:"不算差,不够好".同时,我也谈到了"队头阻塞",但由于时间的限制没有展开来细讲,这次就来好好地看看 HT ...
- 操作系统教程课后习题答案完整版
有些显示不出来的可以去我主页上看 习题一 1.设计操作系统的主要目的是什么? 设计操作系统的目的是: (1)从系统管理人员的观点来看,设计操作系统是为了合理地去组织计算机工作流程,管理和分配计 ...
- 算法入门经典习题第一章
习题1-1 平均数(average) #include<iostream> #include<bits/stdc++.h> using namespace std; int m ...
- linux运维脚本编写,最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本...
最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本 大家可以通过参考下面的课程学习目录,就会发现单单只从目录上来分析就知道这是一部非常系统的Shell自动化脚本运 ...
- 计算机网络第三章习题
计算机网络第三章习题 习题对应课本:Computer Networks (Fifth Edition) - Andrew S. Tanenbaum 习题 1. 一个上层分组(数据包)被分为 10 帧, ...
最新文章
- 贪心算法(Greedy Algorithm)最小生成树 克鲁斯卡尔算法(Kruskal#39;s algorithm)
- 私房库视频学习笔记-小清新BBS系统开发技术归纳
- MVC5 数据注解和验证
- c语言二进制转十六进制编程,哪位大神有 二进制转十六进制C语言程序
- watch 和 computed
- vue项目实现登录(sessionStorage 存储 token)
- 了解如何通过Python使用SQLite数据库
- log4net在WinForm和ASP.net下的设置
- 世界末日倒计时 js代码
- 飞控算法-姿态解算之互补滤波
- mysql 分库分表实战_DBLE分库分表实战
- happen-before原则
- 项目管理、Bug管理软件工具:禅道,BugFree,Redmine
- 如何让ffplay或者ffmpeg支持H265编码的rtmp/http-flv 实时直播流
- 香港第一金:黄金3月27行情操作分析预判
- 样式的新建、修改和导入/导出
- 今日头条开通,分享我爱的数码科技
- 最后1天,包邮送50豆瓣高分Python 好书
- 月份和星期的英语(请不要再弄错了)
- Pareto最优解排序