信息学奥赛一本通(1319:【例6.1】排队接水)
1319:【例6.1】排队接水
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 17332 通过数: 7890
【题目描述】
有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。
【输入】
共两行,第一行为n(1≤n≤1000);第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。
【输出】
有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。
【输入样例】
10 56 12 1 99 1000 234 33 55 99 812
【输出样例】
3 2 7 8 1 4 9 6 10 5 291.90
【分析】
由干排队时,越靠前面的计算次数越多,因此越小的排在越前面得出的结果越小(可以
(可用数学方法简单证明,这里就不再赘述),所以这道题可以用贪心法解答,基本步骤为∶
(1)将输入的时间按从小到大排序;(2)将排序后的时间按顺序依次放入每个水龙头的队列中;(3)统计,输出答案。
【参考代码】
#include <stdio.h>
#define N 1010struct node
{int time; //接水时间 int site; //位置
}a[N],t;int main()
{int n,i,j;double sum=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i].time);a[i].site=i;}for(i=0;i<n-1;i++) //比较排序 {for(j=i+1;j<n;j++){if(a[i].time > a[j].time){t=a[i];a[i]=a[j];a[j]=t;}}}for(i=0;i<n;i++)printf("%d ",a[i].site+1);printf("\n");for(i=0;i<n;++i)sum+=a[i].time*(n-1-i);printf("%.2lf\n",sum*1.0/n);return 0;
}
http://ybt.ssoier.cn:8088/problem_show.php?pid=1319
信息学奥赛一本通(1319:【例6.1】排队接水)相关推荐
- 信息学奥赛一本通 1319:【例6.1】排队接水 | 洛谷 P1223 排队接水
[题目链接] ybt 1319:[例6.1]排队接水 洛谷 P1223 排队接水 [题目考点] 1. 贪心 2. 贪心选择性质的证明 要想证明贪心选择可以得到最优解,只需要证明最优解包含每一次的贪心选 ...
- 信息学奥赛一本通(1183:病人排队)
1183:病人排队 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 17345 通过数: 7284 [题目描述] 病人登记看病,编写一个程序,将登记的病人按 ...
- 信息学奥赛一本通:1183:病人排队
1183:病人排队 [题目描述] 病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序: 1.老年人(年龄 >= 60岁)比非老年人优先看病. 2.老年人按年龄从大到小的顺序看 ...
- 【例1】 0/1背包《信息学奥赛一本通》【解法一】 02
/* [例1] 0/1背包<信息学奥赛一本通>[解法一] 02 http://ybt.ssoier.cn:8088/problem_show.php?pid=1267 */ #includ ...
- 【例8】合唱队形(《信息学奥赛一本通第五版》)
/* [例8]合唱队形(<信息学奥赛一本通第五版>) http://ybt.ssoier.cn:8088/problem_show.php?pid=1264 [问题描述] N位同学站成一排 ...
- 信息学奥赛一本通 2021:【例4.6】最大公约数
[题目链接] ybt 2021:[例4.6]最大公约数 [题目考点] 1. while循环 2. 求最大公约数 辗转相减法 辗转相除法 [解题思路] 解法1:枚举 取较小数字,从该数字的值开始从大到小 ...
- 信息学奥赛一本通(2032:【例4.18】分解质因数)
2032:[例4.18]分解质因数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 582 通过数: 376 [题目描述] 把一个合数分解成若干个质因数乘积 ...
- 信息学奥赛一本通——2062:【例1.3】电影票
2062:[例1.3]电影票 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 57341 通过数: 34230 [题目描述] 已知一位小朋友的电影票价是10 ...
- 信息学奥赛一本通 1278:【例9.22】复制书稿(book) | 洛谷 P1281 书的复制
[题目链接] ybt 1278:[例9.22]复制书稿(book) 洛谷 P1281 书的复制 [题目考点] 1. 动态规划:线性动规 [解题思路] 该题可以抽象为:将由m个数字构成的序列分成k个子段 ...
- 信息学奥赛一本通1267:【例9.11】01背包问题(二维dp与滚动数组优化)
[题目描述] 一个旅行者有一个最多能装 MM 公斤的背包,现在有 nn 件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,. ...
最新文章
- mysql innodb myisam 插入数据_mysql innodb换成myisam后插入数据变快?
- Why I Love My Virtual PCs
- linux删除U盘分区、创建分区和格式化
- 机器学习 KD树_递归_回溯_搜索(matlab实现)
- Nike Air Jordan Sneakers
- php oracle打印输出,php 连接oracle 导出百万级数据
- STM32工作笔记0068---SPI同步通信Flash读写实验
- python文件命名 数字_在python中,如何导入文件名以数字开头
- STM32固件库包的下载与安装
- idea格式化代码失效
- 便捷注册live、MSN邮箱
- 标准正态分布怎么算_标准正态分布值计算器
- linux bt速度快,linux bt速度之王—— rtorrent
- 犹太人很会赚钱?一老板用犹太人的思维做生意,一年赚了200多万!
- N2N V3 安装配置解决方案
- bzoj1778 驱逐猪猡 [高斯消元+概率DP]
- Python技巧——解析式
- 计算机技术科学的作用,计算机教育中科学技术的作用
- 等面积圆柱投影的证明
- Hadoop实现数据清洗ETL