CCC题解(CCC就是题目的名字不要误解)

题目描述

时间:1s 空间:256M

题目描述:

C是一个变量,一开始C = 0,给你包含n个数的a数组,取其中任意k个数的排列a1,a2,…,ak,并依次运算C = (C+ai)/2.

你的任务是使得最终的C尽可能大

输入格式:

第一行两个数 n k (1<=k<=n<=100)(1<=k<=n<=100)

第二行n个数,a1,a2,…,an(1<=a_i<=5000)a1​,a2​,…,an​(1<=ai​<=5000)

输出格式:

输出C,保留5位小数

样例输入1:

2 2 1000 1500

样例输出1:

1000.00000

样例输入2:

2 1 1000 1500

样例输出2:

750.00000

样例输入3:

10 5 2604 2281 3204 2264 2200 2650 2229 2461 2439 2211

样例输出3:

2820.03125
题解
一道纯纯贪心题
首先
我们的任务是让C尽可能的大
那我们就要让这k个数运算出来的值尽可能的大
于是我们就可以sort一下数组

sort(a + 1,a + n + 1);

让他有序,然后把后面k数进行运算,就可以得出答案

for(int i = n - k + 1;i <= n;i++)
{
	s = (s + a[i])/2;
}

向这样
最后
注意样例是保留了5位小数,所以我们用printf输出5位即可

printf("%.5lf",s);

然后就可以获得AC的好成绩

我从我信奥OJ上搬过来的

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值