题目链接

题目

题目描述

小贝喜欢玩卡牌游戏。某个游戏体系中共有N种卡牌,其中M种是稀有的。小贝每次和电脑对决获胜之后都会有一个抽卡机会,这时系统会随机从N种卡中选择一张给小贝。普通卡可能多次出现,而稀有卡牌不会被重复抽到。小贝希望收集到K种稀有卡牌,她想知道期望需要多少次获胜才能实现这个目标。

输入描述

数据有多组,第一行一个整数T表示数据组数。

每组数据一行,三个整数N,M,K .

输出描述

对于每组数据,输出形如"Case #x: y",其中 x 为这组数据的编号(从1开始),y 为这组数据的答案。答案的绝对误差或相对误差在10-6以内都认为是正确的。

示例1

输入

2
5 2 1
40 9 5

输出

Case #1: 2.5
Case #2: 28.1146825397

备注

1 ≤ T ≤ 100

1 ≤ N ≤ 10^5

1 ≤ M ≤ N

1 ≤ K ≤ M

题解

知识点:概率dp。

设 \(f_i\) 表示已经抽到 \(i\) 张稀有牌后还需要抽几次的期望。有转移方程:

\[f_i = (f_{i+1} + 1) \cdot \frac{m-i}{n-i} + (f_i + 1) \cdot \frac{n-m}{n-i}
\]

稍作变形:

\[f_i = f_{i+1} + \dfrac{n-i}{m-i}
\]

所以 \(\displaystyle f_0 = \sum_{i = 0}^{k-1} \dfrac{n-i}{m-i}\) 。

时间复杂度 \(O(k)\)

空间复杂度 \(O(1)\)

代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long; bool solve() {
int n, m, k;
cin >> n >> m >> k;
double ans = 0;
for (int i = k - 1;i >= 0;i--) ans += (double)(n - i) / (m - i);
cout << fixed << setprecision(9) << ans << '\n';
return true;
} int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t = 1;
cin >> t;
for (int i = 1;i <= t;i++) {
cout << "Case #" << i << ": ";
if (!solve()) cout << -1 << '\n';
}
return 0;
}

NC19777 卡牌游戏的更多相关文章

  1. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  2. BZOJ_3191_[JLOI2013]卡牌游戏_概率DP

    BZOJ_3191_[JLOI2013]卡牌游戏_概率DP Description   N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随 ...

  3. 洛谷 P2059 [JLOI2013]卡牌游戏 解题报告

    P2059 [JLOI2013]卡牌游戏 题意 有\(n\)个人玩约瑟夫游戏,有\(m\)张卡,每张卡上有一个正整数,每次庄家有放回的抽一张卡,干掉从庄家起顺时针的第\(k\)个人(计算庄家),干掉的 ...

  4. bzoj千题计划202:bzoj3191: [JLOI2013]卡牌游戏

    http://www.lydsy.com/JudgeOnline/problem.php?id=3191 每个人获胜的概率只与其在排列中与庄家的相对位置有关 dp[i][j] 还剩i个人时,从庄家数第 ...

  5. 【BZOJ3191】【JLOI2013】卡牌游戏 [DP]

    卡牌游戏 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description   N个人坐成一圈玩游戏.一开始我 ...

  6. TCG卡牌游戏研究:《炉石战记:魔兽英雄传》所做的改变

    转自:http://www.gameres.com/665306.html TCG演进史 说到卡牌游戏,大家会联想到什么呢? 是历史悠久的扑克牌.风靡全球的<MTG 魔法风云会>与< ...

  7. BZOJ 4392 卡牌游戏

    Description 奶牛贝茜是卡牌游戏的狂热爱好者, 但是令人吃惊的, 她缺乏对手. 不幸的是, 任何牧 群里的其他牛都不是好对手. 他们实在是太差了 , 实际上, 他们玩卡牌游戏时会遵循一种完全 ...

  8. [JLOI2013]卡牌游戏 概率DP

    [JLOI2013]卡牌游戏 概率DP 题面 \(dfs\)复杂度爆炸,考虑DP.发现决策时,我们只用关心当前玩家是从庄家数第几个玩家与当前抽到的牌是啥.于是设计状态\(f[i][j]\)表示有\(i ...

  9. [省选联考 2021 A/B 卷] 卡牌游戏

    垃圾福建垫底选手来看看这题. 大家怎么都写带 \(log\) 的. 我来说一个线性做法好了. 那么我们考虑枚举 \(k\) 作为翻转完的最小值. 那么构造出一个满足条件的操作,我们在 \(a_i\) ...

  10. 使用UIKit制作卡牌游戏(三)ios游戏篇

    译者: Lao Jiang | 原文作者: Matthijs Hollemans写于2012/07/13 转自朋友Tommy 的翻译,自己只翻译了这第三篇教程. 原文地址: http://www.ra ...

随机推荐

  1. 基于java+springboot的外卖点餐网站、外卖点餐管理系统

    该系统是基于java+springboot开发的外卖点餐网站.外卖点餐管理系统.是给师弟开发的课程作业.运行过程中的问题,可以在github咨询作者. 演示地址 前台地址: http://food.g ...

  2. 在虚拟机(Linux)中Docker中部署Nginx成功,但是在宿主机无法访问Nginx站点?

    1.问题 本文是基于黑马程序员Docker基础--常见命令一课中部署Nginx时遇到的问题作出解答. 在虚拟机(Linux)中Docker中部署Nginx成功,但是在宿主机无法访问Nginx站点 如图 ...

  3. 2. 成功使用SQL Plus完成连接,但在使用Oracle SQL Developer连接时,发生报错ORA-12526: TNS:listener: all appropriate instances are in restricted mode

    经了解后得知,错误原因:ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式. 解决办法:使用系统管理员身份运行以下一段代码 ALTER SYSTEM DISABLE RESTRIC ...

  4. 2021-10-13Docker

    一.简介 1.技术前提 了解linux 修改虚拟机ip为静态: vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="stati ...

  5. SQLServer数据库JDBC连接串参数的简单学习

    SQLServer数据库JDBC连接串参数的简单学习 背景 前段时间一直跟同事一起处理SQLServer 比其他数据库的deadlock更多的问题. 涉及到了几个驱动的参数. 想着问题基本上告一段落, ...

  6. [转帖]tiup cluster reload

    https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster-reload 4 Contributors 在修改集群配置之后,需要通过  ...

  7. [转帖]KingbaseES不同字符类型比较转换规则

    https://www.cnblogs.com/kingbase/p/14798059.html Postgresql 常用的字符数据类型的有char.varchar和text,其中 char 固定长 ...

  8. [转帖]⭐万字长篇超详细的图解Tomcat中间件方方面面储备知识⭐

    https://developer.aliyun.com/article/885079?spm=a2c6h.24874632.expert-profile.321.7c46cfe9h5DxWK 202 ...

  9. Nginx调优总结-第六部分编译优化与简单测试

    第六部分 编译优化 Nginx可以自行编译,所以里面可以设置多个编译策略. 也可以自行修改源码,便于比如进行ip_hash的全IP地址验证. 也可以修改nginx的版本号等信息, 避免内发现. 还可以 ...

  10. Gitlab使用说明

          零.gitlab简介   Gitlab是一个成熟的代码管理工具.为企业和组织提供内部的源代码的存储和管理功能.         一.gitlab角色总览   gitlab中的角色分管理员和 ...