Luogu P9963 [THUPC 2024 初赛] 前缀和 题解 [ 绿 ] [ 组合意义 ] [ 概率期望 ] [ Ad-hoc ]
前缀和:来点神秘结论题。
普通推式子做法比较丑陋复杂,或者用 DP 猜性质的做法也要用到数学归纳法。于是考虑一个神秘组合意义的做法。
假如一共有 \(\infty\) 盏灯,灯的编号为 \(1\sim \infty\),每盏灯有 \(p\) 的概率被点亮,那么问题就转化为求 \([l,r]\) 中期望被点亮的灯的数量,答案就是 \(p\times(r - l+1)\)。因为相邻两盏点亮的灯的位置之差就相当于 \(x_i\) 的值,算一下概率应该就能证明这一点。又因为 \(n\ge l,r\),所以显然不需要考虑 \([l, r]\) 内灯不够的情况。
时间复杂度 \(O(1)\)。
#include <bits/stdc++.h>
#define fi first
#define se second
#define eb(x) emplace_back(x)
#define pb(x) push_back(x)
#define lc(x) (tr[x].ls)
#define rc(x) (tr[x].rs)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ldb;
using pi = pair<int, int>;
ldb l, r, n, p;
int main()
{
scanf("%Lf%Lf%Lf%Lf", &n, &p, &l, &r);;
printf("%.15Lf", p * (r - l + 1));
return 0;
}

浙公网安备 33010602011771号