题目描述

“为世界上所有的美好而战!”
小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;
}

Wannafly挑战赛7 C - 小Q与氪金游戏的更多相关文章

  1. [ZJOI2007] 小Q的矩阵游戏 (模板—Dinic)

    B. 矩阵游戏 题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行 ...

  2. 【牛客Wannafly挑战赛12】小H和圣诞树

    题目 可以考虑边分治,对于某一种颜色,我们处理出分治边左右两边所有以这个颜色为端点的路径长度,之后随便拼一拼就好了 但是这样对于每一组询问都需要边分一遍,这样做复杂度是\(O(nm+n\log n)\ ...

  3. 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉

    写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制: ...

  4. Wannafly挑战赛19 A-队列Q

    题目描述 ZZT 创造了一个队列 Q.这个队列包含了 N 个元素,队列中的第 i 个元素用 Qi 表示.Q1 表示队头元素,QN 表示队尾元素.队列中的元素是 N 的一个全排列. ZZT 需要在这个队 ...

  5. wannafly 挑战赛8 E 小G的项链(manecher)

    链接:https://www.nowcoder.com/acm/contest/57/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...

  6. Wannafly挑战赛10 D 小H的询问(线段树)

    题目链接  Problem D 这个题类似 SPOJ GSS3 做过那个题之后其实就可以秒掉这题了. 考虑当前线段树维护的结点 在那道题的基础上,这个题要多维护几个东西,大概就是左端点的奇偶性,右端点 ...

  7. bzoj 4813: [Cqoi2017]小Q的棋盘

    Description 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能 在有连线的格点之间移动.整个棋盘上共有V个格点,编号为0,1,2-,V- ...

  8. 【二分图】ZJOI2007小Q的游戏

    660. [ZJOI2007] 小Q的矩阵游戏 ★☆   输入文件:qmatrix.in   输出文件:qmatrix.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] ...

  9. [bzoj4813][Cqoi2017]小Q的棋盘

    来自FallDream的博客,未经允许,请勿转载,谢谢. 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能在有连线的格点之间移动.整个棋盘上共有V ...

随机推荐

  1. 「LibreOJ β Round #4」框架

    https://loj.ac/problem/527 题目描述 有一个n×m的矩形框架,但其中有些边被删除了.qmqmqm想知道剩余部分中还有多少完整的正方形.只有当一个正方形的每一条边均被保留下来, ...

  2. JSOI2008 小店购物

    https://www.luogu.org/problem/show?pid=2792 题目背景 JSOI集训队的队员发现,在他们经常活动的集训地,有一个小店因为其丰富的经营优惠方案深受附近居民的青睐 ...

  3. ZOJ 3778 C - Talented Chef 水题

    LINK:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3778 题意:有n道菜,每道菜需要\(a_i\)道工序,有m个锅可 ...

  4. 在GitHub搭建个人博客 地址: https://douzujun.github.io/

    搭建博客地址:https://douzujun.github.io/ 博客模板:https://github.com/douzujun/douzujun.github.io 显示效果:

  5. Python学习笔记(九)返回函数

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318352367 ...

  6. PHP扩展--taint检测隐藏漏洞

    简介 Taint 可以用来检测隐藏的XSS code, SQL注入, Shell注入等漏洞, 并且这些漏洞如果要用静态分析工具去排查, 将会非常困难, 比如对于如下的例子: <?php echo ...

  7. Lua只读表

    利用Lua的元表(metatable)和元函数(metafunction)可以很简单的实现此功能. 其实现大致分为三个部分 1.禁止在表中创建新值 2.禁止改变已有的值 3.将子表也变为只读 1.禁止 ...

  8. LintCode 397: Longest Increasing Continuous Subsequence

    LintCode 397: Longest Increasing Continuous Subsequence 题目描述 给定一个整数数组(下标从0到n - 1,n表示整个数组的规模),请找出该数组中 ...

  9. ASP.NET MVC EF直接更新数据(不需查询)

    EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动 ...

  10. JSON.parse()——json字符串转JS

    JSON 通常用于与服务端交换数据. 在接收服务器数据时一般是字符串. 我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象. 语法 JSON.parse(text[, ...