一道诡异的考试题

题目:

给定$a$张黑牌,$b$白牌,甲,乙两人按以下顺序抽牌:

甲抽一张,乙抽一张,然后弃去一张,然后重复以上过程。

先抽到黑牌者胜,求甲和乙获胜的概率$mod 1004535809$的值。

输入:

一行,两个整数$a b$,分别代表黑牌张数和白牌张数

输出:

一行,两个整数,分别代表甲和乙的胜率

数据范围:

$a,b\leq10000$

样例:

一道诡异的考试题

考试之后题解给的是这样的:

一道诡异的考试题

然而在我们的电脑上,它T了,然后巨佬renhr想出了以下方法//%%% renhr!!!!

一句微小的提示:以下各式子中除法默认向下取整。

先考虑平局的情况,这种情况下一定是黑牌全部被弃去,因此其概率为:

[\frac{{C_{{\textstyle{{a + b} \over 3}}}^a}}{{C_{a + b}^a}}]

接下来考虑甲胜的情况:

我们枚举在第几局决出胜负,那么在这一局之前,甲乙二人抓到的一定是白牌,在这一局,甲抓到了黑牌,不妨设这是第$i$局,那么将会有$a+b-2*i-3$个位置上的牌的颜色是不确定的,而这些位置上有共计$a-1$张黑牌,因而甲的胜率为:

[\frac{{\sum\limits_{i = 1}^{{\textstyle{{a + b} \over 3}}} {C_{a + b – 2i – 3}^{a – 1}} }}{{C_{a + b}^a}}]

接下来容斥一下,就能得到乙的胜率了。

组合数用线筛逆元即可。

本蒟蒻的代码:跑的比标程快的多

#include
#define mod 1004535809ll
int a,b,n;
long long pin[20100],inv[20100],fw,lw;
void init()
{
    pin[0]=1;
    for(int i=1;i20010;i++)
        pin[i]=pin[i-1]*i%mod;
    inv[0]=1;
    inv[1]=1;
    for(int i=2;i20010;i++)
        inv[i]=(mod-mod/i)*inv[mod%i]%mod;
    for(int i=2;i20010;i++)
        inv[i]=inv[i-1]*inv[i]%mod;
}
long long C(int x,int y)
{
    if(x0||y<0)
        return 0;
    return pin[x]*inv[y]%mod*inv[x-y]%mod;
}
int main()
{
    freopen("game.in","r",stdin);
    freopen("game.out","w",stdout);
    init();
    scanf("%d%d",&a,&b);
    n=a+b;
    for(int i=1;i3)
    {
        fw=(fw+C(n-2*i/3-1,a-1))%mod;
    }
    long long bas=inv[n]*pin[b]%mod*pin[a]%mod;
    long long draw=C(n/3,a)*bas%mod;
    fw=fw*bas%mod;
    lw=(1-draw-fw+2*mod)%mod;
    printf("%lld %lld\n",fw,lw);
    return 0;
}

Original: https://www.cnblogs.com/Grharris/p/11770938.html
Author: Grharris
Title: 一道诡异的考试题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577990/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 防数据泄露_MySQL库和数据安全

    攻击场景 外部入侵 内部盗取 防御体系建设 参考 在企业安全建设中有一个方向是防数据泄露,其中一块工作就是保障数据库安全,毕竟这里是数据的源头。当然数据库也分不同的种类,不同类型的…

    Linux 2023年6月6日
    0108
  • 小白上手Linux系统安装Tomcat教程

    1.准备阶段: 要有JDK环境,在安装好JDK后再配置tomcat,JDK安装详情在我博客中可以看到。 3.导入 进入到Xshell输入在自己的文件中(cd /home/lzh)好…

    Linux 2023年6月13日
    0107
  • 《拉钩课程 — 计算机网络通关》学习笔记

    一、概述 1、程序员基础知识大致可以分为七种基本科学:计算机组成原理、操作系统、计算机网络、算法和数据结构、图形学、编译原理、编辑技巧。 2、ISP:Internet Servic…

    Linux 2023年6月16日
    0123
  • 【socket】在Linux下socket温度上报–客户端

    socket通信客户端 socket函数 * 代码实现 socket函数 int socket(int domain,int type,int protocol); 参数: dom…

    Linux 2023年6月13日
    0115
  • tomcat服务器和servlet的基本认识

    今天下午在知乎看见了一个老哥的文章,写的是servlet写的很好,以前我对Javaweb方面的理解比较混乱今天看了这位老哥的文章后受益匪浅,知乎名叫:bravo1988​ 里面也有…

    Linux 2023年6月6日
    0110
  • 蓝桥杯国赛——循环小数

    时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分 【问题描述】已知 S 是一个小于 1 的循环小数,请计算与 S 相等的最简真分数是多少。例如 0 . 3333…

    Linux 2023年6月6日
    075
  • LeetCode-125. 验证回文串

    题目来源 题目详情 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: &#8…

    Linux 2023年6月7日
    088
  • Linux 0.11源码阅读笔记-高速缓冲

    高速缓冲 概念 高速缓冲区是内存中的一块内存,它充当块设备和内核中其他程序之间的桥梁。如果内核程序需要访问块设备中的数据,则需要通过高速缓冲区进行间接操作。 [En] The hi…

    Linux 2023年5月27日
    080
  • 如何搭建android源代码repo仓库

    .版本: v0.3作者:河东西望日期:2022-7-5. 如果你的开发是基于AOSP源码来建仓,那么搭建repo服务器和部署自己的repo仓库就是非常必要的工作了。 现实中很多公司…

    Linux 2023年6月7日
    079
  • SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 后端篇(三): 整合阿里云 OSS 服务 — 上传、下载文件、图片

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 前端篇(一):搭建基本环境:https://www.cnblogs.c…

    Linux 2023年6月11日
    087
  • shell加密

    如何保护自己编写的shell程序要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1、加密 2、设定过期时间,下面以shc工具为例说明: 一、下载安装shc工具s…

    Linux 2023年5月28日
    087
  • 计算机网络学习任务

    自学分析题 请分析,一个5KHz的无噪声信道能够达到的最大数据传输率是多少? 为什么? 假设你使用的宽带是100Mbps,你要把一个0.5GB的文件发送出去, 理论上要花多长时间?…

    Linux 2023年6月6日
    0139
  • 重启电脑后Mysql无法在cmd运行

    问题描述:如果在cmd窗口显示 &#x2018;mysql&#x2019;&#x4E0D;&#x662F;&#x5185;&#x90…

    Linux 2023年6月15日
    0145
  • final关键字

    1-1 编译期常量 定义:带有 ①编译时数值(区别于运行时数值)的 ②final ③ 基本数据类型的量。 注意: 既是static又是final的量不一定是编译期常量; publi…

    Linux 2023年6月8日
    078
  • Golang 实现 Redis(5): 使用跳表实现 SortedSet

    本文是使用 golang 实现 redis 系列的第五篇, 将介绍如何使用跳表实现有序集合(SortedSet)的相关功能。 跳表(skiplist) 是 Redis 中 Sort…

    Linux 2023年5月28日
    0101
  • 微信小程序全局变量的设置、使用、修改过程解析

    微信小程序全局变量的设置、使用、修改过程解析 全局变量的设置 在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的。 php;g…

    Linux 2023年6月7日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球