首页 > 其他分享 >CSP模拟50联测12 T2 赌神

CSP模拟50联测12 T2 赌神

时间:2023-10-11 15:33:26浏览次数:37  
标签:12 frac dbinom 筹码 sum T2 cdots 赌神 dp

CSP模拟50联测12 T2 赌神

题面与数据规模

Ps:超链接为衡水中学OJ。

思路

\(subtask2\):

由于\(x_i\)较小,考虑 dp。

假设一开始球的颜色为红和蓝,设 \(dp[i][j]\) 为剩 \(i\) 个红球,\(j\) 个蓝球时可获得的最大筹码数。

如果不同球掉落所获得的筹码不同,那么肯定会掉落最少筹码的那一堆球。所以保证各堆获得筹码相同时最优。

设蓝球堆放\(x\)个筹码,红球堆放\(y\)个筹码,则有:

\[dp[i][j]=2x*dp[i-1][j]=2y*dp[i][j-1] \ \ (n=2) \]

易得每次把筹码投完比不投优。可得:

\[y=1-x\\ x*dp[i-1][j]=(1-x)dp[i][j-1] \]

解 \(x\) 得:\(x=\frac{dp[i][j-1]}{dp[i-1][j]+dp[i][j-1]}\)

所以

\[dp[i][j]=2x*dp[i-1][j]=\frac{2dp[i][j-1]dp[i-1][j]}{dp[i][j-1]+dp[i-1][j]} \]

\(subtask3\):

任然考虑 \(n=2\) 的情况,设 \(f[i][j]=\frac{dp[i][j]}{2^{i+j}}\)。

将 \(dp[i][j]\) 通过 \(subtask2\) 中的方程化简,得:

\[f[i][j]=\frac{f[i-1][j]f[i][j-1]}{f[i][j-1]+f[i-1][j]} \]

同时取倒数,并裂项得:

\[\frac{1}{f[i][j]}=\frac{f[i][j-1]+f[i-1][j]}{f[i-1][j]f[i][j-1]}=\frac{1}{f[i][j-1]}+\frac{1}{f[i-1][j]} \]

不难发现 \(f[i][j]\) 为在二维平面内由 \((0,0)\) 走向 \(i,j\) 的方案数,所以 \(f[i][j]=\dbinom{i+j}{i}\)。

\(subtask4\)

其实 \(n>2\) 时也有上述性质,那么 \(f(x_1,x_2,\cdots,x_n)\) 为 \(n\) 维平面内从 \((0,0,0,\cdots,0)\) 走到 \((x_1,x_2,\cdots,x_n)\) 的方案数。

那么\(f(x_1,x_2,\cdots,x_n)=\dbinom{\sum_{i=1}^n x_i}{x_n}*\dbinom{\sum_{i=1}^{n-1}x_i}{x_{n-1}}*\cdots*\dbinom{x_1}{x_1}\)。

展开,得:

\[f(x_1,x_2,\cdots,x_n)=\frac{\sum_{i=1}^n x_i}{x_n!\sum_{i=1}^{n-1}x_i}*\frac{\sum_{i=1}^{n-1} x_i}{x_{n-1}!\sum_{i=1}^{n-2}x_i}*\cdots*1 \]

发现每一项的分子与后一项的分母都存在共同部分,再次化简,得:

\[f(x_1,x_2,\cdots,x_n)=\frac{(\sum_{i=1}^n x_i)!}{\prod_{i=1}^n x_i!} \]

于是答案为 \(\frac{n^{x_1+x_2+\cdots+x_n}}{f(x_1,x_2,\cdots,x_n)}\)。

标签:12,frac,dbinom,筹码,sum,T2,cdots,赌神,dp
From: https://www.cnblogs.com/binbinbjl/p/17757312.html

相关文章

  • Debian12安装MySQL8实践及问题解决方案
    Debian12安装MySQL数据库,常规操作:sudoaptsearchmysql&sudoaptinstallmysql,肯定是行不通的,因为没有安装包。把我的安装过程以及遇到问题的解决方案记录下来,供大家借鉴。第一步更新系统、下载软件包命令如下:sudoaptupdatewgethttps://dev.mysql.com/get/mysql-apt-co......
  • 2023-10-11:用go语言,一个数字n,一定要分成k份, 得到的乘积尽量大是多少? 数字n和k,可能非常
    2023-10-11:用go语言,一个数字n,一定要分成k份,得到的乘积尽量大是多少?数字n和k,可能非常大,到达10^12规模。结果可能更大,所以返回结果对1000000007取模。来自华为。来自左程云。答案2023-10-11:大体过程如下:算法1:暴力递归1.首先判断k是否为0或者n是否小于k,若是则返回-1。2.调用递归函数pr......
  • 2023-10-11:用go语言,一个数字n,一定要分成k份, 得到的乘积尽量大是多少? 数字n和k,可能非常
    2023-10-11:用go语言,一个数字n,一定要分成k份,得到的乘积尽量大是多少?数字n和k,可能非常大,到达10^12规模。结果可能更大,所以返回结果对1000000007取模。来自华为。来自左程云。答案2023-10-11:大体过程如下:算法1:暴力递归1.首先判断k是否为0或者n是否小于k,若是则返回-1。2.调......
  • 全志R128芯片 基础组件开发指南——RTOS 多媒体编码
    RTOS多媒体编码介绍FreeRTOS下如何使用xrecorder的接口来开发录制应用程序,方便录制应用开发人员快速正确地开发,以及录制应用测试人员如何根据该文档对基于xrecord的录制应用进行验证测试。编码支持情况目前RTOS平台多媒体编码应用支持的编码格式分别为:pcm、amr、mp3、s......
  • leetcode122买卖股票的最佳时机——贪心、动态规划
    题目描述: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。   示例1......
  • SQLAlchemy学习-12.查询之 order_by 按desc 降序排序
    前言sqlalchemy的query默认是按id升序进行排序的,当我们需要按某个字段降序排序,就需要用到order_by。order_by排序默认情况下sqlalchemy的query默认是按id升序进行排序的res=session.query(Project).all()print(res)#[<Project(id='1',project_name='string'.........
  • 12306
    importreimportrequestsdefkeys_values(d,value):returnlist(d.keys())[list(d.values()).index(value)]headers={"Cookie":"_uab_collina=169692832736292006740293;tk=J8HeHzkZevrt4pki7lrzlw0gWQAuAtETriqaAQ09x1x0;JSESSIONID=80DA6......
  • [CF1285F]Classical?
    F-Classical?考虑先加上\(gcd(a_i,a_j)=1\)的限制从大到小扫集合里的数,若扫到数\(x\)发现存在\(y>x\)且\(gcd(x,y)=1\),则所有\(x<t<y\)的\(t\)都不会再对答案有贡献了,因此使用栈存储扫过的元素,当扫到\(x\)时,只要栈中有与\(x\)互质的数就弹栈,并与\(x\)更新答案那么如何快速判......
  • Java创建PKCS12证书Http请求
    //证书地址publicstaticfinalStringPATH="XX.pfx";//密码publicstaticfinalStringPASSWORD="aaa";publicstaticCloseableHttpClientinitSSLConfig()throwsException{//证书类型KeyStorekeyStore=KeyStore.getInstanc......
  • winserver2012 搭建AD域
    1、添加AD域功能      2、安装完,配置域服务   一直下一步,安装完后会自动重启 3、创建组织单位,添加域账户和联系人     4、查询当前域用户dsqueryuser-nametest1 ......