CF1392H ZS Shuffles Cards 题解

首先,抽到一次鬼牌视作一次迭代,那么每次迭代的期望长度是一样的,即

[\begin{aligned} E(x)&=1\times\frac{m}{n+m}+2\times\frac{n}{n+m}\times\frac{m}{n+m-1}+\ldots+(n+1)\times(\prod_{j=0}^{n-1} \frac{n-j}{n+m-j})\times\frac{m}{n+m-n}\ &=\sum_{i=1}^{n+1}\frac{im}{n+m-i+1}\prod_{j=0}^{i-2}\frac{n-j}{n+m-j} \end{aligned} ]

后面那个式子可以预处理,加上求逆元总复杂度是 (O(n\log p))。

然后现在考虑设 (f_i) 表示还有 (i) 个数不在集合里,期望进行的 迭代次数。这个可以递推计算,即

[f_i=\frac{m}{m+k}(f_i+1)+\frac{k}{m+k}f_{i-1} ]

化简得

[f_i=f_{i-1}+\frac{m}{k}]

边界是 (f_0=1),可以求得 (f_n=1+m\sum_{i=1}^{n}\frac{1}{i}),可以直接 (O(n)) 求出。

最后的答案期望可以直接相乘,就做完了。

点击查看代码

const int N=2e6+13;
int n,m,a[N],inv[N];
int main(){
//file();
    read(n),read(m);
    a[1]=1;
    for(int i=2;i

Original: https://www.cnblogs.com/winterfrost/p/cf1392h-solution.html
Author: cunzai_zsy0531
Title: CF1392H ZS Shuffles Cards 题解

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

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

(0)

大家都在看

  • 单向链表的介绍和实现思路

    链表在内存中的存储 链表是以节点的方式来存储, 是链式存储 每个节点包含 data 域 和 next 域。next域用来指向下一个节点 链表的各个节点不一定是连续存储的 链表分 带…

    数据结构和算法 2023年6月12日
    0128
  • 队列的模拟及环形队列思路

    定义 队列是一个 有序列表,可以用 数组或是 链表来实现。 遵循 先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 模拟思路 队列本身是有序列表,若使用数组的结构来…

    数据结构和算法 2023年6月12日
    0118
  • 0~1背包问题最暴力解法

    0~1背包问题纯暴力解法 选择物品放入背包时每个物品只有两种选择情况即放入与不放入,所以在n个物品的情况下采用最暴力手段解决时最坏时间复杂度应为2的n次方。 假如物品数量为3,编号…

    数据结构和算法 2023年6月7日
    0100
  • 【AcWing】第 63 场周赛 【2022.08.06】

    请计算,共有多少个整数数对 (x,y) 同时满足: 例如,当 a=5,b=6,n=3 时,共有 4 个满足条件的数对: (0,3),(1,2),(2,1),(3,0)。 第一行包含…

    数据结构和算法 2023年6月8日
    0105
  • 数据结构:线性表

    线性表 线性表(List):零个或多个数据元素的有限序列。 首先它是一个序列。也就是说,元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有…

    数据结构和算法 2023年6月12日
    0100
  • P4388 付公主的矩形 题解

    简要题意 求有多少矩形对角线经过的方格数为给定的 (n),其中 (R \times C) 和 (C \times R) 视为同一个矩形。 解题思路 首先考虑怎么求一个已知矩形对角线…

    数据结构和算法 2023年6月7日
    084
  • SpringBoot与Redis多线程入门——多线程redis存取数据

    SpringBoot Redis yml 配置 此处省略密码 spring: redis: database: 0 host: 127.0.0.1 port: 6379 timeo…

    数据结构和算法 2023年6月16日
    0137
  • 我的码风

    缺省源里是 #include<cstdio></cstdio>,用的时候缺啥补啥。不打万能头。 习惯用快读快写。 int re() { int s=0,f=…

    数据结构和算法 2023年6月12日
    0119
  • 平衡树不好打?试试Trie字典树!

    算法导入 众所周知平衡树很难打(大佬除外),还老是调错。万一这种事情发生在关键时刻你就GG了。那我们怎么办呢? 从本质上介绍,平衡树作用就是维护一个有序的序列(关系)。很多操作我们…

    数据结构和算法 2023年6月7日
    093
  • DFS与BFS

    DFS与BFS dfs又称深度优先搜索,即一路走到底(一个执着的人),当走到底(到达叶子节点)时要回溯。注:回溯不是直接回到头,而是边回去边看,能不能再往下走,只有当我们明确当前节…

    数据结构和算法 2023年6月7日
    0115
  • 多项式求逆

    已知一度数为n的多项式(A(x))。 [A(x)B(x)\equiv1\pmod {x^n} ] (B(x))即为(A(x))的逆元。 多项式的除法、(\exp)和(\ln)都是基…

    数据结构和算法 2023年6月7日
    0109
  • 《Redis设计与实现》

    由浅到深,逐步讲解Redis 本书主要分为四大部分。 第一部分”数据结构与对象”: 介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象…

    数据结构和算法 2023年6月16日
    0111
  • 树剖笔记

    之前学的,但是这种恶心的东西一天不打就忘了。 为了之后会议方便,就简单的写一下吧。 树剖,顾名思义就是把树剖成一条一条的链。但是要按照儿子个数分成 轻链和 重链。 每一条链上节点的…

    数据结构和算法 2023年6月7日
    097
  • Html飞机大战(六):移动飞机

    好家伙,这篇移动主角 我们先来看看一个好东西, addEventListener() 方法 (他真的很好用) 我们直译一下,就叫他添加事件监听器方法 而可监听的对象就有很多啦 我们…

    数据结构和算法 2023年6月12日
    0101
  • 进程调度算法

    操作系统有三大调度机制,分别是进程调度、内存页面置换和磁盘调度算法。 进程调度算法 定义 进程调度算法也称 CPU 调度算法,毕竟进程是由 CPU 调度的,当 CPU 空闲时,操作…

    数据结构和算法 2023年6月8日
    099
  • 【POJ 3259】Wormholes(最短路 Floyd算法)

    题目描述 教学楼里有很多教室,这些教室由双向走廊连接。另外,还存在一些单向的秘密通道,通过它们可以回到过去。现在有 N (1 ≤ N ≤ 500) 个教室,编号 1.. N, M …

    数据结构和算法 2023年6月14日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球