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)}\)。

CSP模拟50联测12 T2 赌神的更多相关文章

  1. AI赌神称霸德扑的秘密,刚刚被《科学》“曝光”了

    AI赌神称霸德扑的秘密,刚刚被<科学>“曝光”了 称霸德州扑克赛场的赌神Libratus,是今年最瞩目的AI明星之一. 刚刚,<科学>最新发布的预印版论文,详细解读了AI赌神背 ...

  2. csp模拟赛低级错误及反思

    \(csp\)模拟赛低级错误及反思. 1.没开\(longlong\). 反思:注意数据类型以及数据范围. 2.数组越界(前向星数组未开两倍,一题的数据范围应用到另一题上,要开两倍的写法为开两倍数组) ...

  3. 【NOIP2017提高组模拟12.10】神炎皇

    题目 神炎皇乌利亚很喜欢数对,他想找到神奇的数对. 对于一个整数对(a,b),若满足a+b<=n且a+b是ab的因子,则成为神奇的数对.请问这样的数对共有多少呢? 分析 设\(gcd(a,b)= ...

  4. 2019/11/12 CSP模拟赛&&考前小总结

    写在前面的总结 离联赛只有几天了,也马上就要回归文化课了. 有点舍不得,感觉自己的水平刚刚有点起色,却又要被抓回文化课教室了,真想在机房再赖几天啊. 像19/11/11那场的简单题,自己还是能敲出一些 ...

  5. 【JZOJ4919】【NOIP2017提高组模拟12.10】神炎皇

    题目描述 神炎皇乌利亚很喜欢数对,他想找到神奇的数对. 对于一个整数对(a,b),若满足a+b<=n且a+b是ab的因子,则成为神奇的数对.请问这样的数对共有多少呢? 数据范围 对于100%的数 ...

  6. 第十八次CSP认证游记 | 2019.12.15

    CSP认证的考试是Haogod介绍的,取得一定成绩之后能有机会参加CCSP的分赛区和全国决赛.这次来参加认证要感谢老师的奔走为我们申请学校的报销,虽然最终因为这不是比赛所以报名费和差旅费下不来,但是老 ...

  7. NOIP模拟17.10.12

    T1 临江仙 旧梦 题目背景 闻道故园花陌,今年奼紫嫣红.扬帆直渡水千重.东君何解意,送我一江风. 还是昔时庭院,终得醉卧花丛.残更惊醒月明中.流光如旧岁,多少梦成空. 题目描述 #define go ...

  8. Noip模拟50 2021.9.10

    已经好长时间没有考试不挂分的良好体验了... T1 第零题 开场数据结构,真爽 对于这道题首先要理解对于一条链从上向下和从下向上走复活次数相等 (这可能需要晚上躺在被窝里面脑摸几种情况的样例) 然后就 ...

  9. 2021.9.9考试总结[NOIP模拟50]

    T1 第零题 神秘结论:从一个点满体力到另一个点的复活次数与倒过来相同. 于是预处理出每个点向上走第$2^i$个死亡点的位置,具体实现可以倍增或二分. 每次询问先从两个点同时向上倍增,都转到离$LCA ...

  10. csp模拟69

    考试一眼看出$T3$原题,但是没做过,心态爆炸. 然后去看$T1$,迷之认为它是矩阵快速幂?推了一个小时,发现在转移过程中方案数并不均匀分布,然后就挂了. 决定先去看T3,只会$O(n\sqrt{n} ...

随机推荐

  1. “vscode #include 错误”的问题解决办法

    确定gcc没问题的情况下 打开这个文件 把linux下的文件直接复制过来 然后加上路径就OK了

  2. 【音视频通话】使用asp.net core 8+vue3 实现高效音视频通话

    引言 在三年前,写智能小车的时候,当时小车上有一个摄像头需要采集,实现推拉流的操作,技术选型当时第一版用的是nginx的rtmp的推拉流,服务器的配置环境是centos,2H4G3M的一个配置,ngi ...

  3. Unix、Linux、GNU 关系梳理

    之前写了一篇 MSYS2.MinGW 和 Cygwin 关系梳理的博客,但是要讲清它们几个的关系最好还是先了解一下操作系统的发展历程.遂补充了这篇博客. UNIX:现代操作系统的始祖 Operatin ...

  4. Kubernetes-3.2:kubespray安装高可用k8sv1.20.2集群及常见报错解决

    kubespray安装高可用k8s集群 环境介绍 系统环境 主机名 / IP地址 角色 内核版本 CentOS 7.6.1810 master1 / 192.168.181.252 master &a ...

  5. Java多线程并发之同步容器和并发容器-第一篇

    Java多线程并发之同步容器和并发容器-第一篇 概述 本文主要讲解在Java多线程并发开发中,集合中有哪些支持并发的的.什么是同步容器(集合),什么是并发容器(集合)?并发容器分类有哪些?每个分类都有 ...

  6. 【YashanDB数据库】yasboot查询数据库状态时显示数据库状态为off

    [问题现象] yasboot cluster status -c yashandb 显示数据库状态为off与数据库实际的状态不符,如下图 [问题分类]yasboot.yasdb使用问题 [关键字]ya ...

  7. 【YashanDB知识库】IMP跨网络导入慢问题

    问题现象 问题单:imp性能慢-通过异机导入性能下降太多-镜像环境可重现 现象: 同样一份数据290M, 在同一个机器本地导入,耗时2分钟多,本机用ip连接导入耗时4分钟多, 跨机器导入,耗时17分钟 ...

  8. 【笔记】node常用方法(持续更新)

    1.path.basename(path[, ext]) path <string> ext <string> 可选的文件扩展名. 返回: <string> pat ...

  9. Java如何解决同时出库入库订单号自动获取问题

    在Java中处理同时出库和入库的订单号自动获取问题,通常涉及到多线程环境下的并发控制.为了确保订单号的唯一性和连续性,我们可以使用多种策略,如数据库的自增ID.分布式锁.或者利用Java的并发工具类如 ...

  10. C++的并发编程历史

    多线程环境 并非所有的语言都提供了多线程的环境.即便是C++语言,直到C++11标准之前,也是没有多线程支持的. 在这种情况下,Linux/Unix平台下的开发者通常会使用POSIX Threads, ...