CF1278F Cards

首先我们知道,一次拿牌的概率是 $ P(i) = \frac 1 m $ ,同时权值是1,所以期望就是 $ \frac{1} m $,拿 $ n $ 次牌贡献是独立的,就是 $ \frac n m $。

但是我们要算的是 $ k $ 次方的期望,众所周知期望的二次方不等于二次方的期望。我们考虑 $ E $ 的意义,$ E $ 在这一次拿到 Joker 的 $ \frac 1 m $ 的概率下是 1 ,其他情况是0。则 $ E^2 $ 就是随机两次,这两次都是 1 的情况下是 1 ,其他情况是0。

我们把这 $ n $ 次是否抓到 Joker 的 0/1 写成一个序列,所以知道最后统计的答案,就是所有的长度为 $ k $ 的有序子序列(可以是 $ A_3,A_2,A_2 $ 这种的 ),它做出贡献的前提就是这个子序列的所有随机变量都去到 1 了。

接着考虑,如果两个序列的位置种类数一致,那么它们出现的概率是相同的。如果知道这些位置都是 Joker ,那么这些位置组成的所有序列都会出现。

所以考虑一个 dp ,$ dp[i][j] $ 表示当前在选择第 $ i $ 个位置,到达这个位置时已经有 $ j $ 个不同的位置出现了。那么 $ \sum dp[k][i] \times \frac{1}{m^{i}} $ 就是答案,因为有 $ \frac{1}{m^i} $ 的概率这 $ i $ 个钦定的元素位置都是 Joker,这样带来的权值就是方案数。然后考虑这个 dp 的递推,这是很轻松的:

\[dp[i][j] = dp[i-1][j] \times j + dp[i-1][j-1] \times (n-j+1)
\]

就是考虑第 $ i $ 个位置是选择前 $ j $ 个之一还是新选择一种。

代码很简单:

#include "algorithm"
#include "iostream"
#include "cstring"
#include "cstdio"
using namespace std;
#define MAXN 5006
#define P 998244353
int n , m , k;
int dp[MAXN][MAXN];
int Pow( int a , int b ) {
int cur = a % P , ans = 1;
while( b ) {
if( b & 1 ) ans = 1ll * ans * cur % P;
cur = 1ll * cur * cur % P , b >>= 1;
}
return ans;
}
int main( ) {
cin >> n >> m >> k;
dp[0][0] = 1;
for( int i = 1 ; i <= k ; ++ i ) {
for (int j = 1; j <= i; ++j)
dp[i][j] = ( 1ll * dp[i-1][j] * j % P + 1ll * dp[i-1][j-1] * ( n - j + 1 ) % P ) % P;
}
int res = 0 , cur = 1 , p = Pow( m , P - 2 );
for( int i = 0 ; i <= k ; ++ i )
( res += 1ll * dp[k][i] * cur % P ) %= P , cur = 1ll * cur * p % P;
cout << res << endl;
}

CF1278F Cards的更多相关文章

  1. 洛谷 P6031 - CF1278F Cards 加强版(推式子+递推)

    洛谷题面传送门 u1s1 这个推式子其实挺套路的吧,可惜有一步没推出来看了题解 \[\begin{aligned} res&=\sum\limits_{i=0}^ni^k\dbinom{n}{ ...

  2. FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅱ

    因为垃圾电脑太卡了就重开了一个... 前传:多项式Ⅰ u1s1 我预感还会有Ⅲ 多项式基础操作: 例题: 26. CF438E The Child and Binary Tree 感觉这题作为第一题还 ...

  3. BZOJ 1004 【HNOI2008】 Cards

    题目链接:Cards 听说这道题是染色问题的入门题,于是就去学了一下\(Bunside\)引理和\(P\acute{o}lya\)定理(其实还是没有懂),回来写这道题. 由于题目中保证"任意 ...

  4. Codeforces Round #384 (Div. 2) 734E Vladik and cards

    E. Vladik and cards time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. bzoj 1004 Cards

    1004: [HNOI2008]Cards Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有 多少种染色方案,Sun ...

  6. codeforces 744C Hongcow Buys a Deck of Cards

    C. Hongcow Buys a Deck of Cards time limit per test 2 seconds memory limit per test 256 megabytes in ...

  7. CF 204B Little Elephant and Cards

    题目链接: 传送门 Little Elephant and Cards time limit per test:2 second     memory limit per test:256 megab ...

  8. HDU 1535 Invitation Cards(最短路 spfa)

    题目链接: 传送门 Invitation Cards Time Limit: 5000MS     Memory Limit: 32768 K Description In the age of te ...

  9. Codeforces Round #227 (Div. 2) E. George and Cards set内二分+树状数组

    E. George and Cards   George is a cat, so he loves playing very much. Vitaly put n cards in a row in ...

随机推荐

  1. 2021.8.12考试总结[NOIP模拟37]

    T1 数列 考场上切掉的简单题. $a$,$b$与数列中数的正负值对答案无关.全当作正数计算即可. $exgcd$解未知数系数为$a$,$b$,加和为$gcd(a,b)$的不定方程组,再枚举每个数.如 ...

  2. [CSP-S2021] 廊桥分配

    链接: P7913 题意: 有 \(m_1\) 架飞机和 \(m_2\) 架飞机停在两个机场,每架飞机有到达和离开的时间,要将 \(n\) 个廊桥分给两个机场,每个廊桥同一时刻只能停一架飞机,需要最大 ...

  3. 洛谷 P2252 [SHOI2002]取石子游戏|【模板】威佐夫博弈

    链接: P2252 [SHOI2002]取石子游戏|[模板]威佐夫博弈 前言: 第一眼大水题,第二眼努力思考,第 N 眼我是大水逼. 题意: 不看题目标题都应该能看出来是取石子类的博弈论. 有两堆石子 ...

  4. [转]DDR3基础知识介绍

    本文转自:(4条消息) xilinx ddr3 MIG ip核使用详解_admiraion123的博客-CSDN博客 1,DDR3基本内容介绍1.1,DDR3简介DDR3全称double-data-r ...

  5. (转)Linux中的文件描述符与打开文件之间的关系

    转:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述     在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文 ...

  6. 字符串折叠&压缩(区间DP)

    字符串折叠 题目描述 折叠的定义如下: 一个字符串可以看成它自身的折叠.记作S = S X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S) = SSSS-S(X个S). 如果A = A ...

  7. Get value from agent failed: cannot connect to [[192.168.8.102]:10050]: [113] No route to host

    192.168.8.102主机down掉,开机就可以

  8. Linux&C ——信号以及信号处理

    linux信号的简单介绍 信号的捕捉和处理 信号处理函数的返回 信号的发送 信号的屏蔽 一:linux信号的简单介绍. 信号提供给我们一种异步处理事件的方法,由于进程之间彼此的地址空间是独立的,所以进 ...

  9. VSCode Java 开发环境配置 详细教程

    VSCode Java 开发环境配置 详细教程 配置java 下载 用于现在大多数使用者用的是java 8,小白的我先安装java 8好了,^ w ^. 下载地址:Java 8 | Java SE 打 ...

  10. 攻防世界 Misc 新手练习区 如来十三掌 Writeup

    攻防世界 Misc 新手练习区 如来十三掌 Writeup 题目介绍 题目考点 佛曰加密.base64.Rot13等加密方法的了解 Writeup 下载并打开附件 联想到佛曰加密,复制内容到 佛曰加密 ...