[P4550] 收集邮票 - 概率期望,dp
2024-10-08 08:06:39
套路性地倒过来考虑,设\(f[i]\)表示拥有了\(i\)种票子时还需要多少次购买,\(g[i]\)表示还需要多少钱
推\(g[i]\)递推式时注意把代价倒过来(反正总数一定,从顺序第\(1\)张开始加钱和倒序没有区别)
#include <bits/stdc++.h>
using namespace std;
const int N = 10005;
double f[N],g[N];
int n;
int main() {
cin>>n;
for(int i=n-1;i>=0;--i) {
f[i]=f[i+1]+1.0*n/(n-i);
}
for(int i=n-1;i>=0;--i) {
g[i]=1.0*i/(n-i)*(f[i]+1)+g[i+1]+f[i+1]+1;
}
printf("%.2lf\n",g[0]);
}
最新文章
- 我去,徒弟半夜来电让写一个PHP短信验证(和群发)
- 开发Android 范的错误
- RequireJS示例
- Java中HashMap和TreeMap的区别深入理解
- ETL工具主流产品
- MySQL(10):实体、实体表和外键(foreign key)
- KeyTool
- HttpWebRequest在GetResponse时总是超时
- Gesture(手势)浅析
- BZOJ第7页养成计划
- 使用git工具快速push项目到github(精简)
- BZOJ_3289_Mato的文件管理_莫队+树状数组
- 【重学计算机】操作系统D5章:文件系统
- python中的编码与解码
- WiFi-ESP8266入门http(3-2)网页认证上网-post请求
- 【BZOJ2823】[AHOI2012]信号塔(最小圆覆盖)
- nginx的http_sub_module模块使用之替换字符串
- 基于dsp_builder的算法在FPGA上的实现(转自https://www.cnblogs.com/sunev/archive/2012/11/17/2774836.html)
- java工程师学习计划
- android studio 更新 Gradle错误解决方法(Gradle sync failed)