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

【题解】增添战斗力

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

【题目描述】

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


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

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

分享给朋友:

相关文章

【题解】区间和

【描述】输入一个整数Q,进行Q次询问,每次给定两个整数l和r,每一次输出l~r中所有平方数的和 % 1000000007【输入】第一行是一个整数Q后面的Q行每行有2个数字l和r【输出】Q行,...

【题解】智力大冲浪

【题目描述】小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的。接下来主持人宣布了比赛规则:首...

【题解】采摘花生2

【题目描述】Hello Kitty又一次来到花生地里摘花生,从左上角进入花生地,从右下角出去,只能向右或者向下,请问Hello Kitty应该沿着什么样的路线走,能够摘到的花生数量最多(假设花生地里没...

【算法】走迷宫

【题目描述】一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜...

【题解】王国比赛

【题解】王国比赛

【题目描述】智慧之王 Kri 统治着一座王国。 这天 Kri 决定举行一场比赛,来检验自己大臣的智慧。 比赛由 n道判断题组成,有 m位大臣参加。现在你已经知道了所有大臣的答题情况,但尚未拿到答...

八皇后2

【题目描述】会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 × 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8...