排队接水

数组总结 数组总结总结收获 总结 在程序中输入多个变量如果单纯输入,效率较低,因此C++提供了“数组”类型。数组就是一组相同类型的变量,它们往往都是为了表示同一批对象的统一属性,如一个班级同学的身高,同学的成绩等等。数组可以是一维的也可以是二维或多维的。 1、一维数组的定义 类型标识符 数组名[常量表达式]; 其中,类型标识符可以是任何基本数据类型,也可以是结构体等构造类型,相同类型的数组可以一起定义。数... 阅读详情

题目描述

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

输入格式

第一行为一个整数 n。
第二行 n 个整数,第 i个整数 Ti​,表示第 i 个人的等待时间 Ti​。

输出格式

共两行:
第一行为一种平均时间最短的排队顺序;
第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。

样例数据

输入样例 #1输出样例 #1
10 
56 12 1 99 1000 234 33 55 99 812
3 2 7 8 1 4 9 6 10 5
291.90

样例分析

如上所述。

数据范围

100% 的数据:1≤n≤1000;ti​≤10^6,
当 ti​ 重复时,按照输入顺序即可。

解题:

#include<bits/stdc++.h>
using namespace std;
int n,a[1005],b[1005];
double c;
bool f=true;

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=i;
   while(f){
   	f=false;
   	for(int i=1;i<n;i++){
   		if(a[i]>a[i+1]){
				f=true;
				swap(a[i],a[i+1]);
				swap(b[i],b[i+1]);
   		}
   	}
   }
	for(int i=1;i<=n;i++)printf("%d ",b[i]);
	for(int i=1;i<=n;i++)c+=a[i]*(n-i);
	c/=n;
	cout<<endl<<fixed<<setprecision(2)<<c;
	return 0;
}

shell脚本 插队 插队 #题目描述 有n个人(每个一个唯一编号,用1~n之间整数表示)一个水龙头排队接水,现在第n个人有特殊情况,经过协商,大家允许他插队到第x个位置。输出第n个人插队后的排队情况。 #输入 第一行1个正整数n,表示有n个人,2<=n<=100 第二行包含n个正整数之间一个空格隔开,表示排在队伍中的第1~第n个人编号。 第三行包含1个正整数x,表示第n个人插队的位置,1<=x<n #输出 一行包含n个正整数之间一个空格隔开,表示第n个人插队后的排队情况。 #样 阅读详情

相关推荐

排队接水|题解

原创不易 转发请标明出处

Y_bluefat的博客 729

信息学奥赛C++语言:插队问题

【题目描述】 有 n 个人每个一个唯一编号,用 1~n 之间整数表示)在一个水龙头排队接水,现在第 n 个人有特殊情况,经过协商,大家允许他插队到第 x 个位置。输出第 n 个人插队后的排队情况。 【输入】 第一行 1 个正整数 n,表示有 n 个人,2<n≤100。 第二行包含 n 个正整数之间一个空格隔开,表示排在队伍中的第 1~ 第 n 个人编号。 第三行包含 1...

zsbailong的博客 8585

每个队伍允许插队的情况下,若你在排队,有一个以上的朋友要求插队,你可以安排他们的顺序,每次一个入队。。。

每个队伍允许插队的情况下,若你在排队,有一个以上的朋友要求插队,你可以安排他们的顺序,每次一个入队,并且如果这个入队的发现队伍中有自己的朋友,则可以插入到这个朋友的后面,当队伍中的朋友不止一个时,这个人会排在最后一个朋友的后面。若队伍中没有朋友,则排在队伍的最后面。每一个入队的都先进行上述判断。当队伍面的买到票后,依次出队。

信息学奥赛C++语言: 队伍调整

【题目描述】 有 n 个人每个一个唯一编号,用 1~n 之间整数表示)在一个水龙头排队接水,现在第 x 个人有特殊情况离开了队伍,求第 x 个人离开队伍后的排队情况。 【输入】 第一行 1 个正整数 n,表示有 n 个人,2<n≤100。 第二行包含n个正整数之间一个空格隔开,表示排在队伍中的第1个到第n个人编号。 第三行包含 1 个正整数 x,表示第 x 个人离开队伍...

zsbailong的博客 3862

C++ 排队接水

输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。个人一个水龙头排队接水,假如每个接水的时间为。个人排队的一种顺序,使得。个人的平均等待时间最小。

Zr1ose的博客 1837

贪心——排队接水

贪心——排队接水 题目描述 有 n 个人一个水龙头排队接水,假如每个接水的时间为 Ti,请编程找出这 n 个人排队的一种顺序,使得 n 个人的平均等待时间最小。 输入格式 第一行为一个整数 n。 第二行 n 个整数,第 i 个整数 Ti 表示第 i 个人的等待时间 Ti。 输出格式 输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。 输入输出样例 输入样例 10 56 12 1 99 1000 234 33 55 99 812 输出

linjiayina的博客 2080

洛谷P1223 排队接水

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

夜深人静写代码 591

hi.排队接水

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

Pretty Boy Fox的博客 774

【贪心】排队接水

【贪心】排队接水 题目 题目描述 有 n 个人一个水龙头排队接水,假如每个接水的时间为 T_i,请编程找出这 n 个人排队的一种顺序,使得 n 个人的平均等待时间最小。 输入格式 第一行为一个整数 n。 第二行 n 个整数,第 i 个整数 T_i 表示第 i 个人的等待时间 T i 。 输出格式 输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结...

A793488316的博客 755

【经典贪心练习】排队接水

【贪心练习】排队接水 题目描述 有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

weixin_45741610的博客 1763

P1223 排队接水

有 n个人一个水龙头排队接水,假如每个接水的时间为 $T_i$,请编程找出这 $n$ 个人排队的一种顺序,使得 n 个人的平均等待时间最小。第一行为一个整数 n。第二行 n个整数,第 i个整数 T_i$ 表示第 $i$ 个人接水时间 $T_i$。输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。10291.901<=n<=1000,1<=t[i]<=10^6,不保证 t[i] 不重复。

Yiping2012ABC的博客 560

刷题路-排队接水

排队接水 题目描述 有 n个人一个水龙头排队接水,假如每个接水的时间为 Ti,请编程找出这 n个人排队的一种顺序,使得 n 个人的平均等待时间最小。 输入格式 第一行为一个整数 n。 第二行 n 个整数,第 i 个整数 Ti。 表示第 ii 个人的等待时间 Ti。 输出格式 输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。 输入输出样例 输入 #1 10 56 12 1 99 1000 234 33 55 99 812 输出 #1

Sandwith的博客 620

排队打水(贪心,排序不等式)

有 n 个人排队1水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有的等待时间之和最小?因为第 i 个人打水要打 t [ i ] 时间,所以没有打水的的等待时长为 ( n - i )* t [ i ].第二行包含 n 个整数,其中第 i 个整数表示第 i 个人装满水桶所花费的时间 ti。当 i 越小 ( n - i ) 越大,为了让和最小,必须让 t [ i ] 尽可能小。输出一个整数表示最小的等待时间之和。第一行包含整数 n。

xbb0521l的博客 389

数组

数组 一维数组的定义 1.定义一维数组的格式如下: 类型标识符 数组[名常量表达式]; 其中,类型标识符可以是任何基本数据类型,也可以是结构体等构造类型,相同类型的数组可以一起定义。数组名必须是合法的标识符。常量表达式的值即为数组元素的个数。 2.一维数组的元素引用 数组定义好后,就可以“引用”数组中的任意一个元素。引用格式为“数组名[下标]。其中,下...

Han5556的博客 556

ZCMU--5253: 排队接水

有n个人一个水龙头排队接水,假如每个接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。输入共两行,第一行为n;第二行输入n个数字,表示1个人到第n个人接水时间T1,T2,……,Tn,每个数据之间1个空格。输出有两行,第一行为一种排队顺序,第i个数字代表第i个接水编号,行末不能有多余空格,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。注意:输出排序时,当两接水时间一样时,需要让编号小的1056 12 1

小小小Why的博客 1123
上一篇: 冒泡排序
下一篇: 斐波那契数列
henwy
博客等级 码龄4年 11粉丝 77原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值