洛谷题解:P8236 [AGM 2022 资格赛] 魔法的力量

题目传送门。

题意


给定 n n n,给定 n n n 个数字,随机选择两个数字相加,合并为一个新的数字,让我们求期望得分是多少。

分析


这是一道数学问题。

什么是期望值呢?期望值就是求这 n n n 个数字的和与选到每两个数字的概率的积。

我们首先用一个长整型变量 a n s ans ans 来存所有数字的和,然后用长浮点型变量 s u m sum sum 来存概率的积。那么当 还有 i i i 个数字没有合并的时候,剩下的概率值还有 2 i \frac{2}{i} i2 的概率,使用 s u m sum sum 加上即可,最后记得保留十位小数。


Code

#include <cstdio>
#include <iomanip>
#include <iostream>
using namespace std;
int n, p;
// 记得开 long long 
long long ans;
long double sum;
int main() {
	scanf ("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf ("%d", &p);
		// 所有数字的和 
		ans += p;
	}
	// 当还有 i 个数字没有合并,剩下的期望值还有 2/i 的概率,加上概率值 
	for (int i = 2; i <= n; i++) sum += (long double)(2) * 1.0 / (long double)(i);
	// 保留十位小数 
	cout << fixed << setprecision(10) << ans * sum;
	return 0;
}

AC 记录。

完结撒花。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值