经过分析后的二分

题目是

Josnch星球是一个赌博之风盛行的星球。每个人一出生就有一定数额的钱,之后的所有收入只能由赌博获得(OMG,如果RP不好,输光了所有的 钱。。。)假设赌博公司的某场赌博有N个结果,每个结果能获得的赔率比分别是a[1],a[2]...a[N]。假设现在XXX有X块钱,问他选择怎样的 策略才能使得最坏情况下回报最大(假设N个结果中只有一个是有回报的,X块钱必须全部用在这次赌博上,赔率比就是a[i],假设你在第 i 个结果中投入 了 y 块钱,那么你的回报是 y * a[i],所谓策略是你在每个结果上的投入应该是怎么分配,比如样例N = 2的时候,赔率比分别是1,2,你有1000块钱,那么买 第一个2000 /3,, 后一个1000 / 3,这样最坏情况下你的回报是666.67)

不妨假设最坏情况下回报为mid,假设在每个结果上的投入分别是x[1],x[2]...x[n],那么则有min(x[1] * a[1], x[2] * a[2] .. x[n] * a[n]) >= mid, 即对于任意的 i ,有x[i] * a[i] >= mid,所以x[1] >= mid / a[1] x[2] >= mid / a[2] ... x[n] >= mid / a[n]。因为X = x[1] + x[2] + .. x[n] 那么如果mid / a[1] + ... mid / a[n] <= X,说明最坏情况下至少可以取得的回报为mid(每个投入为x[1]...x[n]即可,剩余的钱随便乱搞)。否则说明总钱数不能满足这样情况。因此,如 果mid满足条件,即mid / a[1] + ... + mid / a[n] = mid * (1 / a[1] + .. 1 / a[n]) <= X,对于任意P <= mid的数,必然满足P * (1 / a[1] + .. 1 / a[n]) <= X 如果mid不满足条件,那么mid * (1 / a[1] + .. 1 / a[n]) > X,对于任何大于mid的数Q,Q * (1 / a[1] + ... 1 / a[n]) > mid * (1 / a[1] + .. 1 / a[n]) > X。 所以mid具有单调性,因此二分mid即可。

上面是大神的解释

感觉是 二分能取到的最小值

#include <iostream>
#include<cstdio>
#include<string.h>
using namespace std;
double A[];
int main()
{
int n;
while(scanf("%d",&n)==){
for(int i=;i<n;++i)
scanf("%lf",&A[i]);
double X;
scanf("%lf",&X);
double L=,R=X*100.0,mid ,ans;
double eps=1e-;
while(L+eps<=R){
mid=(L+R)/;
double sum=;
for(int i=;i<n;++i)
sum+=mid/A[i];
if(sum<=X){
ans=mid;
L=mid+eps;
}
else {
R=mid-eps;
}
}
printf("%.2lf\n",ans);
}
return ;
}

ac1066的更多相关文章

随机推荐

  1. mysql里查看时间

    MariaDB [jumpserver]> select current_time;+--------------+| current_time |+--------------+| 16:22 ...

  2. 吐槽win8

    想吐槽win8好久了!今天终于忍不住,得喷一下以泻心头之愤. 文件拷贝动辄失败!? 但凡是我从远程往本地拷大程序,此时文件系统变得奇慢无比,而且本地也不能打开大文件或者往外拷贝,否则一不小心就出现拷贝 ...

  3. poi 导入导出excel

    import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; i ...

  4. 树形DP总结,持续更新

    自己做了动态规划的题目已经有了一个月,但是成效甚微,所以来总结一下动态规划,希望自己能够温故知新.这个博客是关于树形dp的,动态规划的一类题目. 首先从最简单的树形DP入手,树形DP顾名思义就是一棵树 ...

  5. HDU-1166敌兵布阵(线段树)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...

  6. 《SEO在网页制作中的应用》视频笔记

    学习了慕课网<SEO在网页制作中的应用>视频,今天将里面的知识整理一下. 一.SEO介绍 1.  搜索引擎工作原理 搜索引擎现在主流有百度.谷歌.360,他们都有庞大的搜索引擎数据库,每个 ...

  7. Invalid HTTP_HOST header: 'xxx.xx.xxx.xxx:8000'. You may need to add 'xxx.xx' to ALLOWED_HOSTS

    Invalid HTTP_HOST header: 'xxx.xx.xxx.xxx:8000'. You may need to add 'xxx.xx' to ALLOWED_HOSTS - buk ...

  8. Node.js(daemon),tweak(debug ES)/nodejs forever,supervisor--express

    http://www.cnblogs.com/Darren_code/p/node_express.html express -e nodejs-product sudo npm install fo ...

  9. nodejs(一)process模块

    1.process是一个全局进程,你可以直接通过process变量直接访问它. process实现了EventEmitter接口,exit方法会在当进程退出的时候执行.因为进程退出之后将不再执行事件循 ...

  10. Java8新特性 集合的stream的map

    看该段代码(作用是把List中的对象替换): List<BlackMac> blackMacList = blackMacDao.queryBlackByMac(mac, (paginat ...