首页 > 其他分享 >CF1854C

CF1854C

时间:2023-10-30 16:55:57浏览次数:24  
标签:正整数 leq CF1854C 集合 期望 步数

传送门

description

给定正整数 \(n,m\) 和集合 \(S\),满足 \(S\) 中元素互不相同且都是小于等于 \(m\) 的正整数。每次进行如下操作

  1. 从集合 \(S\) 中随机选取一个数记作 \(x\)

  2. 从 \(S\) 中删去 \(x\)

  3. 如果 \(x+1\leq m\) 且 \(x+1\) 不在 \(S\) 中,把 \(x+1\) 放入 \(S\)

求把集合清空的期望次数。

  • \(n,m,|S|\leq 500\)

solution

数据范围诈骗。

可以发现,一个数对答案的贡献不受比它小的数的影响,只需要考虑每个数合并到第一个比它大的数的期望步数(或者最后一个数合并到 \(m+1\)),依据期望的线性性把每个数的期望步数加起来即为答案。

于是问题转化成这样独立的模型:

已知两数分别为 \(x,y(x\leq y)\),

  • 若 \(y\neq m+1\),随机把 \(x\) 或 \(y\) 加 1。

  • 若 \(y=m+1\),把 \(x\) 加 1。

求 \(f_{x,y}\) 表示使得初始的 \(x,y\) 相等 x 的期望增加步数。

显然有转移:

  • \(f_{i,i}=0\)

  • \(f_{i,j}=\dfrac{(f_{i+1,j}+1)+f_{i,j+1}}{2}\)

  • \(f_{i,m+1}=f_{i+1,m+1}+1\)

时间复杂度 \(O(m^2)\)

code

代码里的状态 \(x,y\) 分别表示第一个数和第二个数到 \(m+1\) 的距离。

Submission #230364270 - Codeforces

P.S.

CF1540B 一个类似的方法算期望的题

标签:正整数,leq,CF1854C,集合,期望,步数
From: https://www.cnblogs.com/FreshOrange/p/17798255.html

相关文章

  • CF1854C Solution
    题目链接题意给定大小为\(n\)的正整数集合\(S\),\(S\)中的每个数在\(1\simm\)之间。每一秒进行如下操作:从\(S\)中等概率随机选择一个数\(x\)。将\(x\)从\(S\)中删去。若\(x+1\leqm\)且\(x+1\notinS\),则将\(x+1\)加入\(S\)。求\(S\)变成空集......
  • 【题解】CF1854C Expected Destruction
    你考虑,我们如果没有重合就将元素删去的操作,我们就有答案:\(n\times(m+1)-\sum\limits_{i=1}^na_i\)但是,我们显然最后的答案是小于这个的,如果有两个数在\(i\)相撞,那么我们的答案就会减少\((m-i+1)\)我们设\(f_{i,j}\)表示两个数分别在\(i\)和\(j\)的概率\((i\leqj......
  • [CF1854C] Expected Destruction
    题目描述Youhaveaset$S$of$n$distinctintegersbetween$1$and$m$.Eachsecondyoudothefollowingsteps:Pickanelement$x$in$S$uniformlyatrandom.Remove$x$from$S$.If$x+1\leqm$and$x+1$isnotin$S$,add$x+......