一个小疑问
  • 板块P1223 排队接水
  • 楼主Aheaddd
  • 当前回复10
  • 已保存回复10
  • 发布时间2021/8/29 17:24
  • 上次更新2023/11/4 08:37:47
查看原帖
一个小疑问
549907
Aheaddd楼主2021/8/29 17:24
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<stdio.h>
using namespace std;

int n;
double sum;
struct stu
{
	int t;
	int id;
};
stu s[1005];

bool cmp(stu x,stu y)
{
	return x.t < y.t;
}

int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		s[i].id = i;
		cin >> s[i].t;
	}
	sort(s + 1, s + n + 1,cmp);
	for (int i = 1; i <= n; i++)
	{
		cout << s[i].id << " " ;
	}
	cout << endl;
	for (int i = 1; i <= n; i++)
	{
		sum += s[i].t*(n - i);
	}
	double aver = sum / n;
	cout << setiosflags(ios::fixed) << setprecision(2) << aver  ;
	return 0;
}

为啥sum+=s[i].t*(n-i)而不是s[i].t*(n-i+1) 第一种的话最后一个人的排队时间不就没有算进去了吗?

2021/8/29 17:24
加载中...