博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 623D [Amazing概率题]
阅读量:6996 次
发布时间:2019-06-27

本文共 1031 字,大约阅读时间需要 3 分钟。

很有趣的一道题吖!

 

做法:贪心+迭代

  • Sigma(i*(pr[i]-pr[i-1])))=n-sigma(pr[i]), 所以我们贪心地是pr[i]尽可能大。
  • 也就是让pr[i]/pr[i-1]尽可能大。

这种类型的贪心,和17EC-Final的那个最小化方差的题挺相似的。

#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;#define rd(x) scanf("%d",&x)#define prt(x) printf("%d\n", x);#define prtvec(v) for(int i=0;i
=x;i--)const int N=300000+10;const double EPS = 1e-8;int n;double f[N][102],g[N],p[N];int main(){ rd(n); rep(i,1,n) scanf("%lf",&p[i]), p[i]/=100.0; rep(i,1,n) f[n][i] = p[i]; rep(i,n+1,N-1) { double mx = 0; int bst = -1; rep(j,1,n) { double tmp = (1-f[i-1][j])*p[j]/f[i-1][j]; if (tmp > mx) { mx=tmp, bst = j; } } rep(j,1,n) f[i][j]=f[i-1][j]; f[i][bst]=(1-f[i-1][bst])*p[bst] + f[i-1][bst]; } double res = 0; rep(i,n,N-1) { g[i]=1; rep(j,1,n) g[i]*=f[i][j]; res=res+i*(g[i]-g[i-1]); } printf("%.5f\n", res);}

  

 

转载于:https://www.cnblogs.com/RUSH-D-CAT/p/8955538.html

你可能感兴趣的文章
广搜记录路径
查看>>
Number Sequence
查看>>
centos 卸载mysql
查看>>
jsonp详解
查看>>
VmWare虚拟机增加硬盘容量的方法
查看>>
[导入]解析WAP技术
查看>>
UEditor不能获取文章内容的解决办法
查看>>
redis数据库的安装
查看>>
Java 开源项目整合
查看>>
什么是事务、事务特性、事务隔离级别、spring事务传播特性
查看>>
java线程 公平锁 ReentrantLock(boolean fair)
查看>>
基础dp例题整理
查看>>
浅谈Java泛型
查看>>
描述文件不匹配的解决方法
查看>>
springboot 配置文件
查看>>
省赛模拟一 阶乘除法
查看>>
R语言的导数计算(转)
查看>>
两对象值合并
查看>>
C# 固定窗体大小且不能鼠标调整大小完美实现
查看>>
hdu 1856 More is better (并查集)
查看>>