P1291 [SHOI2002] 百事世界杯之旅
设现在已经买到 \(m\) 个人的,一共有 \(n\) 个人。
第一瓶买到新人的概率 $ = \frac{n - m}{n}$
第二瓶买到新人的概率 $ = \frac{m}{n} \times \frac{n - m}{n}$,前两瓶买到新人的概率 $ = \frac{n - m}{n} + \frac{m}{n} \times \frac{n - m}{n} = \frac{n - m}{n} (1 + \frac{m}{n})$
以此类推,第 \(k\) 瓶买到新人的期望 \(E = \frac{n - m}{n} [1 + 2\frac{m}{n} + 3(\frac{m}{n})^2 + \dots + k(\frac{m}{n})^{k - 1}]\)
接下来开始漫长的推导:
推到这,除掉最后的一项 \(k(\frac{m}{n})^k\),\(E\) 就是一个完美的等比数列。
别忘了,\(k(\frac{m}{n})^k\) 是无限趋近于 \(0\) 的,而 \(k\) 又是无穷大的,因此,这一项就等于 \(0\)。
再根据等比数列求和公式可得:
这里因为 \(k\) 是无穷大的,那么 \(k - 1\) 也是无穷大的,因此 \((\frac{m}{n})^{k - 1} = 0\),可忽略。
设 \(f_i\) 表示买第 \(i\) 个人(已经买了 \(i - 1\) 个人)的期望值,由我们刚才推出来的结论,不难得出:
在递推的过程中维护分子分母,最后再处理输出就好啦~
\(Code:\)
#include <bits/stdc++.h>
#define MAXN 40
using namespace std;
typedef long long ll;
int n;
template<typename _T>
inline void read(_T &_x) {
_x = 0;
_T _f = 1;
char _ch = getchar();
while (_ch < '0' || '9' < _ch) {
if (_ch == '-') _f = -1;
_ch = getchar();
}
while ('0' <= _ch && _ch <= '9') {
_x = (_x << 3) + (_x << 1) + (_ch & 15);
_ch = getchar();
}
_x *= _f;
}
template<typename _T>
inline void write(_T _x) {
if (_x < 0) {
putchar('-');
_x = -_x;
}
if (_x > 9) write(_x / 10);
putchar('0' + _x % 10);
}
int count(ll x) {
int res = 0;
while (x) {
res++;
x /= 10;
}
return res;
}
int main() {
read(n);
ll a = n, b = n;
for (int i = 2; i <= n; i++) {
a = a * (n - i + 1) + n * b;
b *= (n - i + 1);
int gcd = __gcd(a, b);
a /= gcd, b /= gcd;
}
ll z = a / b;
a %= b;
if (!a) {
write(z);
return 0;
}
int cz = count(z), cb = count(b);
for (int i = 1; i <= cz; i++) putchar(' '); write(a), putchar('\n');
write(z); for (int i = 1; i <= cb; i++) putchar('-'); putchar('\n');
for (int i = 1; i <= cz; i++) putchar(' '); write(b);
return 0;
}
作者:chy12321
出处:https://www.cnblogs.com/chy12321/p/16608138.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现