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

【题解】增添战斗力

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

【题目描述】

大战即将来临,杰洛特需要为自己增添战斗力,广袤的大陆有诸多豪杰,正好可以为杰洛特所用
    杰洛特分别有两处地方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;
}


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

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

    分享给朋友:

    相关文章

    【题解】摘花生问题

    【题解】摘花生问题

    【题目描述】Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过...

    【题解】老王赛马

    【题目描述】赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。 赛马是当时最受...

    简单算术表达式求值

    【题目描述】 两位正整数的简单算术运算(只考虑整数运算),算术运算为:+,加法运算;    -,减法运算;   &nbs...

    【题解】解密

    【题解】解密

    【题目描述】给定一个正整数k,有k次询问,每次给定三个正整数ni,ei,di,求两个正整数pi,qi。使ni=pi *  qi,  ei * di =(pi -1) *(qi-1)...

    【题解】相关数

    【题目描述】一个数与另一个数如果含有相同数字和个数的字符,则称两数相关。现有一堆乱七八糟的整数,里面可能充满了彼此相关的数,请你用一下手段,自动地将其剔除。【输入描述】每组数据前有一个N(<10...

    【题解】搭配购买

    【题目描述】Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有n朵云,云朵被编号为1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配...