学习打卡第1100(2)天

本文介绍了高桥君通过观看AtCoder的编程讲座提升实力的过程。每个讲座根据讲师的实力影响高桥君的评级,他最多可以观看K个不同的讲座。文章探讨了如何最大化高桥君的最终评级,并给出了原题链接和作者的解题算法思路。
摘要由CSDN通过智能技术生成

写道日文的贪心题
正好在学日文 就皮一下啦
AtCoder社では、優秀な競技プログラマーの講座動画を NN 個配信しています。
初心者競技プログラマーの高橋くんは、AtCoder社が配信している動画を見て修練しようとしています。
高橋くんの実力はレートという実数値で表され、レートが高いほど実力が高いことを表します。

高橋くんのレートが CC の時に、レート RR の競技プログラマーの講座動画を見ると、高橋くんのレートは (C+R)/2(C+R)/2 に変化します。
高橋くんは、講座動画を合計で KK 個まで好きな順番で見ることができますが、同じ競技プログラマーの講座動画は一度までしか見ることができません。
講座動画を配信している NN 人のレートが与えられた時、高橋くんが講座動画を見ることによって達成できるレートの最大値を求めるプログラムを書いてください。
ただし、高橋くんの初期レートは 00 です。
高橋くんが達成できる最大レートを 11 行で出力せよ。
絶対誤差、または、相対誤差が 10^{-6}10
−6
以下であれば許容される。
また、出力の末尾には改行を入れること。
原题链接:https://www.luogu.com.cn/problem/solution/AT795
我的算法:

#include<bits/stdc++.h>
using namespace std;
int n,k,a[100005];
double c=0;
bool cmp(int x,int y){
	return x>y;
}
int main(){
	cin>>n>>k;
	for(int i=0;i<n;++i){
		cin>>a[i];
	}
	sort(a,a+n,cmp);
	for(int i=k-1;i>=0;--i){
		c=(c+a[i])/2;
	}
	cout<<fixed<<setprecision(6)<<c;
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值