当前位置: 首页 > news >正文

Wannafly挑战赛7 C - 小Q与氪金游戏

题目描述 

“为世界上所有的美好而战!”
小Q同学最近沉迷“稳固3”,为了从最新的蛋池中抽出自己喜欢的角色卡,不惜氪下重金。
在这个游戏中,氪一单可以得到x个宝石,而抽一次卡需要花费y个宝石,由于游戏策划十分“良心”,抽卡是独立重复实验,单次抽出目标角色卡的概率是p且不存在所谓的“保底”。
为了尽可能省钱,小Q同学只会在抽卡所需宝石不足的情况下再氪一单,并且抽出目标角色卡之后会立即停止抽卡,他想知道为了抽出目标角色卡期望要氪多少单。

输入描述:

输入只有一行,包含三个整数x,y,q(0<x,y,q<10000),分别表示氪一单能得到的宝石数、抽一次卡需要的宝石数以及抽出目标角色卡的概率p乘以10000之后的数。

输出描述:

输出一行,包含一个浮点数,表示抽出目标角色卡期望氪的单数,要求绝对误差或相对误差不超过 1e-9。
示例1

输入

6480 280 98

输出

4.921219218795631382

题解

模拟。

每次模拟买、模拟抽就可以了,计算的时候有一些优化,多次抽的话只需要一次计算。

#include <bits/stdc++.h>
using namespace std;

long long x, y, q;
double u[100000];
double f[100000];

int main() {
  scanf("%lld%lld%lld", &x, &y, &q);
  double p = 1.0 * q / 10000.0;
  u[0] = 1.0;
  f[0] = 1.0;
  for(int i = 1; i <= 20000; i ++) {
    f[i] = f[i - 1] * (1.0 - p);
    u[i] = u[i - 1] + f[i];
  }
  
  double pp = 1.0;
  double ans = 0.0;
  long long hav = 0;
  long long tot = 0;
  
  for(int i = 1; i <= 1000000; i ++) {
    int need = y - hav;
    int now = need / x;
    if(need % x) now ++;
    tot = tot + now;
    hav = hav + now * x;
    int r = hav / y;
    ans = ans + 1.0 * pp * p * tot * u[r - 1];
    hav = hav % y;
    pp = pp * f[r];
  }
  printf("%.20f\n", ans);
  return 0;
}

 

转载于:https://www.cnblogs.com/zufezzt/p/8213596.html

相关文章:

  • [c#基础]DataTable的Select方法
  • Hibernate 缓存
  • ESXi 5.0 环境下安装部署Cisco Nexus 1000v
  • Python之内置函数
  • Lucene知识小总结7:评分设置
  • Rust语言:安全地并发
  • python基础===python中文手册
  • 便是管理,不是管理
  • 6-1 接口的特性
  • 驱动和应用层的三种通信方式
  • 《Java编程思想》笔记03------访问权限控制
  • 记笔记与博客
  • 树的遍历
  • 菜鸟配置SAMBA服务之1
  • Qt动态设置布局中的控件
  • 2017届校招提前批面试回顾
  • Brief introduction of how to 'Call, Apply and Bind'
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS居中完全指南——构建CSS居中决策树
  •  D - 粉碎叛乱F - 其他起义
  • Date型的使用
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Elasticsearch 参考指南(升级前重新索引)
  • gf框架之分页模块(五) - 自定义分页
  • js如何打印object对象
  • leetcode386. Lexicographical Numbers
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vim 折腾记
  • Web标准制定过程
  • 半理解系列--Promise的进化史
  • 代理模式
  • 服务器从安装到部署全过程(二)
  • 后端_ThinkPHP5
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 仓管云——企业云erp功能有哪些?
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #ifdef 的技巧用法
  • #if和#ifdef区别
  • #控制台大学课堂点名问题_课堂随机点名
  • (03)光刻——半导体电路的绘制
  • (175)FPGA门控时钟技术
  • (27)4.8 习题课
  • (30)数组元素和与数字和的绝对差
  • (8)STL算法之替换
  • (备忘)Java Map 遍历
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)h264中avc和flv数据的解析
  • (转)程序员技术练级攻略
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)