一道诡异的考试题

题目:

给定$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)

大家都在看

  • LVM 逻辑卷管理 Logical Volume Management

    管理磁盘、使用磁盘的一种方式的称呼 优势: 1、在不影响数据的情况下, 扩容、缩容 2、支持快照功能, 方便数据备份 LVM工作流程: 磁盘/分区 —> pv(物…

    Linux 2023年6月7日
    0112
  • RISC-V靠谱吗?

    向各位行业大佬求教个问题:RISC-V靠谱吗? 事情是这样,昨天公司来了几个人,自称是国内唯几的做RISC-V芯片的公司。我上网查了,确实有这么一家公司,是初创公司。他们拿出PPT…

    Linux 2023年6月6日
    0101
  • Ubuntu系统报错The system is running in low-graphics mode

    我遇到过两次这种请况,这次解决了。很nice! 在csdn上搜到的大部分操作是: 鼠标进入系统 使用快捷键 Ctrl+Alt+F1 进入用户 输入密码 然后按照以下代码进行 cd …

    Linux 2023年5月27日
    092
  • ztreejs树 metro风格 鼠标经过 显示用户自定义控件 新增,编辑,删除,向下,向上操作

    php;gutter:true; ztreejs树功能说明:自定义控件功能新增,编辑,删除,向下移动,向上移动已实现,只是前端,如果需要跟后台交互,封装对应的函数,在相应位置调用即…

    Linux 2023年6月7日
    079
  • 卷积神经网络(简单)

    1.反向传播BP 反向传播(Backpropagation)是”误差反向传播”的简称,是一种与最优化方法,用来训练人工神经网络的常见方法。 简单来说就是: …

    Linux 2023年6月6日
    0115
  • powershell 编写的tui界面脚本《电壳别名宝》

    中文名: 《电壳别名宝》 English name: 《Power Alias》 powershell 编写的tui界面脚本。 用途:保存容易记住的别名(支持中文),保存linux…

    Linux 2023年5月27日
    0126
  • python reportlab 生成table学习笔记

    利用python report生成table表格,需要定义表格的数据,表格的样式,最后利用doc.build方法生成文件。 在reportlab中文手册中描述table方法: Ta…

    Linux 2023年6月14日
    082
  • prometheus operator 监控redis-exporter

    创建 redis-exporter service bash;gutter:false; apiVersion: v1 kind: Service metadata: labels…

    Linux 2023年5月28日
    085
  • 软件危机复习

    没有银弹的含义 软件危机:由于软件规模越来越大,软件复杂性越来越高,可靠性问题也越来越突出,传统的个人设计,个人实现的方式不再满足要求,迫切需要改变软件生产方式,提高软件开发效率,…

    Linux 2023年6月8日
    082
  • 大天使之剑H5游戏超详细图文架设教程

    引言 想体验传奇游戏霸服的快乐吗?想体验满级VIP的尊贵吗?想体验一刀99999的爽快吗?各种极品装备、翅膀、宠物通通给你,就在大天使之剑! 本文讲解大天使之剑H5游戏的架设教程,…

    Linux 2023年6月7日
    0102
  • 文本操作find cut sort wc sed awk

    文本操作 查找文件: # find 大概位置 以名字查找 名字 find /etc/ -name i18n find /etc/ -name 70* find /etc/ -nam…

    Linux 2023年6月11日
    085
  • linux系统编码修改

    查看当前系统默认采用的字符集locale 查看系统当前编码echo $LANG如果输出为:en_US.UTF-8 英文zh_CN.UTF-8 中文 查看系统是否安装中文字符集loc…

    Linux 2023年6月6日
    086
  • java内存调优总结

    ···bashJVM 调优,是个很简单也很复杂的话题,由于经常遇到这类问题,在这里总结一下。 先从解决bug开始,当Java程序申请内存,超出VM可分配内纯的时候,VM首先可能会G…

    Linux 2023年6月14日
    083
  • nginx安装配置步骤

    ​ yum install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel -y [root@n…

    Linux 2023年6月11日
    083
  • 利用卷积神经网络处理cifar图像分类

    这是一个图像分类的比赛CIFAR( CIFAR-10 – Object Recognition in Images ) 首先我们需要下载数据文件,地址: http://…

    Linux 2023年6月6日
    0107
  • nginx-openresty通过location调用显示upstream信息

    背景 有时候查看nginx的upstream配置得知配置后端的ip地址和端口,但从日志里面发现提示后端不存在,想知道nginx的内存里面是否存在upstream的加载信息,判断后端…

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