/*
非常值得重新重做的概率题,化连续为离散,分为(2^M +1)个区间,double型的赌注,则用该区间内的int型来代替,反正效果一样(最终得到的概率是相等的)等到要输出prv[i]时,再去找在dp数组中,该本金对应的是(2^M+1)个区间中的哪个区间
*/#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <iomanip>
using namespace std;
typedef long long ll;
const int MAX_M = 15;int M, X;
double P;
double dp[2][(1 << MAX_M) + 1];void solve()
{int n = 1 << M;double *prv = dp[0], *nxt = dp[1];memset(prv, 0, sizeof (double ) * (n + 1));prv[n] = 1.0;for (int r = 0; r < M; r++) //枚举轮{for (int i = n; i >= 0; i--){int jub = min(i, n - i);double t = 0.0;for (int j = 0; j <= jub; j++){t = max(t, P * prv[i + j] + (1 - P) * prv[i - j]);}nxt[i] = t;} swap(prv, nxt);}int i = (ll) X * n / (1e6);
//  cout << fixed << setprecision(6) << prv[i] << endl;printf("%.6f\n", prv[i]);}
int main()
{freopen("E:\\c2.txt", "r", stdin);freopen("E:\\out2.txt", "w", stdout);int k;
//  cin >> k;scanf("%d",&k);for (int kase = 1; kase <= k; kase++){// cin >> M >> P >> X;scanf("%d%lf%d", &M, &P, &X);printf("Case #%d: ", kase);// cout << "Case #" << kase << ": ";solve(); }fclose(stdin);fclose(stdout);return 0;
}

GCJ 2008 APAC local onsites C Millionaire相关推荐

  1. DP——2008 APAC local onsites C Millionaire

    题目链接: https://codejam.withgoogle.com/codejam/contest/32005/dashboard#s=p2 题意:在一个赌博游戏中,初始有X元,总共玩M轮,每次 ...

  2. GCJ2008 APAC local onsites C Millionaire

    自己Blog的第一篇文章,嗯... 接触这道题,是从<挑战程序设计竞赛>这本书看来的,其实头一遍读题解,并没有懂.当然现在已经理解了,想想当初可能是因为考虑两轮的那张概率图的问题.于是决定 ...

  3. Millionaire(2008 APAC local onsites c) 概率dp

    题意:最开始你有x元钱,要进行M轮赌博.每一轮赢的概率为P,你可以选择赌与不赌,如果赌也可以将所持的任意一部分钱作为赌注(可以是整数,也可以是小数).如果赢了,赌注将翻倍:输了赌注则没了.在M轮赌博结 ...

  4. Millionaire (2008 APAC local onsites C)

    题目可以在网上找. 很多博文上来就放代码,或者大致说一下思路,让人看着很费解,不理解代码里的变量到底是什么含义. 先把书上的讲解贴上来. 接下来,说明代码中变量的含义. (1)for(int r=0; ...

  5. Millionaire(2008 APAC local onsites C)(连续 离散化)

    /* 参加赌博,赌 M 次 ,每次都有 P 的概率下注金翻倍 ,(1-P)的概率输掉下注金 每次可以下注任何数量的金币 一开始有金币 x 个,问最后能带1000 000 个以上回家的概率 // 分析: ...

  6. Millionaire 2008APAC local onsites C

    /*Millionaire 2008APAC local onsites C 题意:最开始你有X元钱,要进行M轮赌博. 每一轮赢的概率为P,你可以选择赌与不赌, 如果赌也可以将所持的任意一部分钱作为赌 ...

  7. 排序不等式 GCJ 2008 Round1A Problem A. Minimum Scalar Product

    排序不等式(Rearrangement Inequality)又称排序原理,是数学上的一种不等式.它可以推导出很多有名的不等式,例如:算术几何平均不等式.柯西不等式.切比雪夫总和不等式. 简洁的来说就 ...

  8. GCJ 2008 Round 1A Minimum Scalar Product( 水 )

    链接:传送门 题意:给两个向量 v1 = { x1 , x2 , x3 , x4 .... } , v2 = { y1 , y2 , y3 , y4 ...... } 允许任意交换 v1 和 v2 各 ...

  9. 数据科学和数学建模_数据科学与国际象棋心理建模重叠

    数据科学和数学建模 Chess and data science have a lot in common. Some seemingly surface-level parallels includ ...

最新文章

  1. Python打印json文件,实现输出
  2. 如何在自定义数据源组件中限制用户的更改
  3. Git 合并两个不同的仓库
  4. 关于Linux命令ls的一道笔试题
  5. 一行代码修改MarkdownPad2在Win10下实时预览字体太小
  6. 小程序iconfont报错_【经验】开发微信小程序经验总结
  7. linux nmon 进程io,Linux服务器用iotop命令分析服务器磁盘IO情况
  8. AMPL—快速了解,秒懂它。
  9. jQuery源码阅读(一)---jQuery源码整体架构
  10. 免费分享一套狂雨小说cms采集规则
  11. 每日一记录,2022年1月5日
  12. theisle服务器信息设置,theisle服务器diy
  13. java 生成der_java – 我们如何将字符串从PEM转换为DER格式
  14. 我们需要一个什么样的公司---读《重新定义公司》有感
  15. 2022年版中国腰果酚市场趋势研究与竞争策略分析报告
  16. HTML中如何自动切换页面背景图片
  17. go开发中遇到的问题:the ntvdm cpu has encountered an illegal instruction
  18. ubuntu下离线侧扫声呐xtf格式数据提取软件
  19. 手机的IMEI、MEID、ICCID、UDID、IMSI
  20. 2017年vb计算机考试,2017年计算机二级VB考试训练题及答案

热门文章

  1. 【游戏开发进阶】教你Unity通过Jenkins实现自动化打包,打包这种事情就交给策划了(保姆级教程 | 命令行打包 | 自动构建)
  2. 力扣589.N叉树的前序遍历
  3. 怎样从原理图中导出元器件清单?
  4. 嗨,你的$90000
  5. 反相器动态功耗计算和短路电流
  6. 如何使用思科模拟器?- 附简明步骤教程(附带下载链接)
  7. Android之 双屏异显控制
  8. WinAPI: GetTempPath - 获取临时文件夹路径
  9. 蓝桥杯java生成树计数_第七届蓝桥杯决赛杂记
  10. 2017年12月至2019年6月英语六级真题重点单词词汇——频率由高到低排序