当前位置:首页 > 题解目录 > 正文内容

【题解】增添战斗力

亿万年的星光11个月前 (04-25)题解目录1013

【题目描述】

大战即将来临,杰洛特需要为自己增添战斗力,广袤的大陆有诸多豪杰,正好可以为杰洛特所用
    杰洛特分别有两处地方n1,n2需要豪杰的战斗力
    一共有n个豪杰,每一个豪杰拥有自己的战斗力pi,当然战斗力是越高越好,可是人人之间还是有差距的。
    因此两个城池决定,各自选出最高战斗力的算术平均值之和。

【输入描述】

第一组一个n表示拥有多少个豪杰,以及一个n1,n2分别表示城池需要的豪杰数
    接下来一行有n个数据分别表示各个豪杰的战斗力

【输出描述】

两个城池最大的战斗力算数平均值之和(结果保留6位小数)

【样例输入】

4 1 2
1 2 3 4

【样例输出】

6.500000



【题目分析】


1.贪心思想:让n值小的先加的大 

2.首先要求平均战斗力高,那挑选的肯定是高战力的,至于怎么分配另外讨论

3. 最大的那几个数分配给数量少的那个军队

4.小的那几个数分配给数量多的那个军队


【参考代码】

?#include<iostream>
#include<algorithm>
using namespace std;
int n,n1,n2;
int arr[10000];

int cmp(int a,int b) {
	return a>b;
}
int main() {
	double res1 = 0.0,res = 0.0;
	cin>>n>>n1>>n2;
	int nums = n1+ n2;
	for(int i = 0; i < n; i++) {
		cin>>arr[i];
	}
	//排序
	sort(arr,arr+n,cmp);
	int mini = min(n1,n2);
	for(int i = 0; i < (n1+n2); i++) {
		if(i<mini) {
			res1+=arr[i];
		}
		res += arr[i];
	}
	printf("%.6lf",(res1/mini) + (res-res1)/(n1+n2-mini));
	return 0;
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    【题解】航空母舰

    3.航空母舰(aircraft.cpp)【题目描述】航空母舰(Aircraft Carrier),是一种以舰载机为主要作战武器的大型水面舰艇。依靠航空母舰,一个国家可以在远离其国土的地方、不依靠当地机...

    【题解】河中跳房子

    【题目描述】每年奶牛们都要举办各种特殊版本的跳房子比赛,包括在河里从一个岩石跳到另一个岩石。这项激动人心的活动在一条长长的笔直河道中进行,在起点和离起点L远 (1 ≤ L≤ 1,000,000,000...

    【题解】冒泡排序计数

    【题目描述】考虑冒泡排序的一种实现。bubble-sort  (A[],  n)>   round  =  0>   while...

    【题解】链表操作

    【题目描述】给定一个N个数的数组,M次操作,每次操作为下列操作之一。求最后的数组。操作1:在第X个数之后插入一个数Y。操作2:删除第X个数。操作3:对区间[X,Y]进行排序。操作4:对区间[X,Y]进...

    【题解】赢得比赛需要的最少训练时长

    【题目描述】你正在参加一场比赛,给你两个 正 整数 initialEnergy 和 initialExperience 分别表示你的初始精力...

    【题解】单词接龙

    【题目描述】单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重...