首页 > 其他分享 >cf1286d-solution

cf1286d-solution

时间:2024-02-28 13:44:21浏览次数:24  
标签:概率 粒子 碰撞 solution times bmatrix cf1286d dp

CF1286D Solution

link

题面:有 \(n\) 个粒子,第 \(i\) 个粒子在位置 \(x_i\) 并有 \(v_i\) 的初速度。

实验开始后,第 \(i\) 个粒子有 \(p_i\) 的概率向右移动,有 \(1-p_i\) 的概率向左移动。

求第一次发生粒子碰撞的期望时间,对 \(998244353\) 取模。

\(n\le10^5,|x_i|\le10^9\)。


显然,首先第一次发生碰撞的粒子必定一开始是相邻的。

那么现在我们只需要考虑 \(n-1\) 对相邻粒子之间的碰撞情况。

由于每种粒子只有可能向左或向右,那么情况数是 \(\mathcal O(n)\) 的。

考虑把所有情况找出来,钦定它是第一次发生的碰撞并计算概率。

这个概率就是所有比它碰撞时间早的碰撞事件都不发生的概率,乘上这一次碰撞发生的概率。

先考虑对于每个碰撞做一次 dp 求出前者。假设此次碰撞为 \(C\)。

设 \(dp_{i,0/1}\) 表示前 \(i\) 个粒子不在 \(C\) 之前发生碰撞,第 \(i\) 个粒子的方向为 \(0/1\) 的概率。

\(f(i,0/1,0/1)\) 表示 \(i\) 方向为 \(0/1\),\(i+1\) 方向为 \(0/1\) 导致的 \(i\) 和 \(i+1\) 的碰撞是否在 \(C\) 后发生。(不发生为 \(1\))

转移:

\[dp_{i,0}\gets (1-p_{i})(dp_{i-1,0}\times f(i-1,0,0)+dp_{i-1,1}\times f(i-1,1,0)) \]

\[dp_{i,1}\gets p_{i}(dp_{i-1,0}\times f(i-1,0,1)+dp_{i-1,1}\times f(i-1,1,1)) \]

这个可以写成矩阵转移,如下:

\(\begin{bmatrix} dp_{i-1,0}&dp_{i-1,1} \end{bmatrix} \times \begin{bmatrix} (1-p_{i})f(i-1,0,0)&p_{i}f(i-1,0,1)\\ (1-p_{i})f(i-1,1,0)&p_{i}f(i-1,1,1) \end{bmatrix} =\begin{bmatrix} dp_{i,0}&dp_{i,1} \end{bmatrix}\)

现在的复杂度是 \(\mathcal O(n^2)\) 的,因为每次的转移矩阵都不同。

考虑不同的 \(C\) 的转移矩阵的变化。我们把所有 \(C\) 按照发生的时间排序,然后你发现对于相邻的 \(C\),仅有一个 \(f\) 会发生变化,也就是这次碰撞对应的 \(f\)。

那么就好办了,由于只有一个 \(f\) 发生变化,我们只需要修改它所在的转移矩阵,用线段树维护矩阵乘积即可。

查询时可以直接用前 \(i-1\) 个碰撞事件不发生的概率减去前 \(i\) 个碰撞事件不发生的概率。

复杂度线性对数。

标签:概率,粒子,碰撞,solution,times,bmatrix,cf1286d,dp
From: https://www.cnblogs.com/iorit/p/18040095

相关文章

  • cf1265e-solution
    CF1265ESolutionlink题解在说啥???期望步数不就是期望轮数乘上每轮的期望步数期望轮数就是这轮结束的概率的倒数即\(\dfrac1{\prod_{i=1}^np_i}\)每轮期望步数根据期望的线性性就是\(\sum_{i=1}^ni(1-p_i)\prod_{j=1}^{i-1}p_j\)也就是步数乘上在这里停下来的概率,停下来的概......
  • 2.27 闲话 & solution 『你是太阳神倾倒而下美酒的甜香/是最高的永恒破碎之后的希望』
    考完试了,我想听歌写了几道LCT,但是都是板子我想听歌Cave洞穴勘测LCT板子啊,直接乱搞就行对于Connect操作和Destroy操作其实是Link和Cut的板子至于Query操作么...阿拉阿拉,直接对(u,v)都进行一次Find,然后判断是否相等即可核心代码就那么几行intn,m;FastI>>n>>m;while(m--......
  • cf1209g2-solution
    CF1209G2Solutionlink根据题意,对于一个颜色的所有下标集合\(S\),设其最小,最大位置是\(l,r\),那么最后染完色的\([l,r]\)区间一定是同一种颜色。如果有两个颜色\(i,j\),\([l_i,r_i]\)和\([l_j,r_j]\)有交集,那么这个区间并起来的大区间也一定是同一种颜色的。这样我们并并......
  • cf1153f-solution
    CF1153FSolutionlink题意:有一段长为\(l\)的线段,有\(n\)个实数区间,左右端点在\([0,l)\)间均匀随机。求期望被至少\(k\)段区间覆盖的长度,对\(998244353\)取模。\(1\lek\len\le10^7,1\lel\le10^{10^6}\)首先\(l\)是没用的,我们可以计算线段长为\(1\)时的......
  • cf1148h-solution
    CF1148HSolutionlink对于区间mex,若固定一个右端点\(r\),左端点\(l\)越小mex肯定越大。假设我们维护了右端点为\(n\),左端点为\(i\in[1,n]\)的区间mex(设为\(b_i\)),考虑在序列末尾加入一个数\(x\):显然有且仅有原先\(b_i=x\)的一段\(b\)会被改掉。改成什么呢?大概......
  • cf1184a3-solution
    CF1184A3Solutionlink题意:给你两个长度为\(n\)的小写字符串\(s,t\)和一个\(m\),定义哈希函数\[h(s)=\left(\sum_{i=0}^{n-1}s_ir^i\right)\bmodp\]求构造\((p,r)\)且\(p\gem,r\in[2,p-1]\),使得\(h(s)=h(t)\)。\(n,m\le10^5\)。题目即求一个多项式\(f(x)=\sum_{......
  • cf1188e-solution
    CF1188ESolutionlink考虑\(x_i\)表示最后序列中每个数被操作的次数。显然我们可以假设\(\min\{x_i\}=0\)。仍然显然的是这样子的\(x\)序列与最后得到的序列一一对应,也就是说每个最终序列可以只能由一种\(x\)得到。那么就变成计数合法的\(x\)序列了。考虑\(x_i\)需......
  • cf1205d-solution
    CF1205DSolutionlink题意:给你一棵\(n\)个节点的树。请你给它的\(n-1\)条边确定权值,使得树上\(\dbinomn2\)条路径的权值和包含\(\displaystyle1\sim\left\lfloor\frac{2n^2}9\right\rfloor\)中所有整数。\(n\le1000\)。注意到有关树上路径问题,我们考虑设\(rt\)......
  • Rancher 无法删除集群的Solution
    Rancher无法删除集群的Solution不同版本的Rancher都能遇到该问题,此问题中,Rancher版本为v2.6.0当我们先删除节点,并在节点宿主机上删除了对应的服务器,再通过Rancher界面去删除托管/自建立集群时,往往这个操作会卡住,并出现报错:{"type":"error","links":{},"code":"PermissionDe......
  • Solution Set #11
    177qoj7607.TheDoublingGame2首先可以发现对于一个局面,操作到这个局面的方案是唯一的(考虑一条边左右的棋子数量,可以知道这条边的移动方向,删去所有不移动的边之后,每个联通块只有一个点有棋子,而对于只有根有棋子的局面构造显然唯一)据此可以\(\mathcal{O}(n^2)\)DP:设\(f_{u......