Loading

近期总结2023.10.10

CF1874D Jellyfish and Miku

题意:有 \(n+1\) 个点,用 \(n\) 条边依次连接点 \(0...n\),边权分别为 \(a_{1...n}\)。一个人,初始在点 \(0\)。若他当前在点 \(0\),那么他会走向点 \(1\);若他当前在点 \(x(x>0)\),他有 \(\frac{a_x}{a_x+a_{x+1}}\) 的概率走向点 \(x-1\),他有 \(\frac{a_{x+1}}{a_x+a_{x+1}}\) 的概率走向点 \(n\)。你的任务是构造 \(a_{1...n}\) 满足 \(\sum a_i=m\),求这个人第一次走到点 \(n\) 的最小期望时间。

\(1\le n,m\le 3000\)

\(c[i]\) 表示从 \(i\) 成功走到 \(i+1\) 的期望步数。

那么 \(c[0]=1,\space c[i]=1+\frac {a_i}{a_i+a_{i+1}} (c[i-1]+c[i])\)

推式子

\[(a_i+a_{i+1})c[i]=a_i+a_{i+1}+a_i\cdot c[i-1]+a_i\cdot c[i] \]

\[a_{i+1}c[i]=a_i+a_{i+1}+a_i\cdot c[i-1] \]

\[c[i]=1+\frac{a_i}{a_{i+1}}+\frac {a_i}{a_{i+1}}c[i-1] \]

\(0\)\(n\) 的期望时间

\[\begin{aligned} \sum_{i=0}^{n-1}c[i] &= 1+\sum_{i=1}^{n-1}c[i] \\ &= 1+\sum_{i=1}^{n-1}(\frac{a_1}{a_i}+\sum_{j=1}^i (1+\frac{a_j}{a_{j+1}})\cdot \prod_{k=j+1}^{i} \frac{a_k}{a_{k+1}}) \\ &= 1+\sum_{i=1}^{n-1}(\frac{a_1}{a_i}+\sum_{j=1}^i (\frac{a_j}{a_{i+1}}+\frac{a_{j+1}}{a_{i+1}})) \\ &= 1+\sum_{i=1}^{n-1}(1+2\sum_{j=1}^i\frac{a_j}{a_{i+1}}) \\ &= n+2\sum_{i=2}^n\frac{\sum_{j<i}a_j}{a_i} \end{aligned} \]

我们只需要最小化 \(\sum\limits_{i=2}^n\frac{\sum_{j<i}a_j}{a_i}\) 即可。

\(f[i,j]\) 表示构造了 \(a_{1...i}\),并且 \(\sum_{p=1}^i a_p=j\),的答案。

枚举 \(a_{i+1}\) 的取值 \(k\),转移:\(f[i,j]+\frac jk\rightarrow f[i+1,j+k]\)

这样做的时间是三次方级别。考虑到 \(a\) 是不降的,\(k\) 需满足 \(k\le \frac{m-j}{n-i}\),因此枚举 \(k\) 是调和级数的。


AGC001E BBQ Hard

题意:给出 \(n,a_{1...n},b_{1...n}\),求

\[\sum\limits_{i=1}^n\sum_{j=i+1}^n {a_i+a_j+b_i+b_j \choose a_i+a_j} \]

\(1\le n\le n\times10^5,\space 1\le a_i,b_i\le 2000\)


一个重要的套路:考虑式子的组合意义。不难发现,\({a_i+a_j+b_i+b_j \choose a_i+a_j}\) 相当于平面上从 \((0,0)\) 走到 \((a_i+a_j,b_i+b_j)\) 的路径条数。

一个重要的套路:用基准计数。直接 \(\text{DP}\) 不好做,考虑到我们每次都是在同一个平面做同一种 \(\text{DP}\),不难发现,\((0,0)\rightarrow(a_i+a_j,b_i+b_j)\) 相当于 \((-a_i,-b_i)\rightarrow (a_j,b_j)\),这样以来,我们就有了基准——中心点为 \((0,0)\)。直接在这个平面上 \(\text{DP}\),以 \(j\) 结尾的点即为 \(f[a_j,b_j]\)。这的 trick 与 NOI2016 优秀的拆分 有异曲同工之妙。

时间复杂度 \(O(n+V^2)\)


ARC165E Random Isolation

题意:一棵树,你每次随机选择一个现有的、所处连通块大小 \(>k\) 的点,然后把它和它连接的边删去,求期望删多少次之后无法操作。

\(1\le k<n\le 100\)


一个重要的套路:期望删的次数 \(=\) 所有可删点连通块的出现概率之和

还有,随机一个排列,依次删点,求删成功的期望次数,这其实是类似的。

我们只需考虑所有可能的连通块的出现之和,因为这些连通块总能贡献 \(1\)

考虑树形 \(\text{DP}\),设 \(f[u,i,j]\) 表示以 \(u\) 为根的子树,连通块大小为 \(i\),已经删了 \(j\) 个点的方案数。

我们只考虑这 \(i+j\) 个点的概率,对于一个大小为 \(x\) 的连通块、删了 \(y\) 个点,说明 \(y\) 个点在 \(x\) 个点之前删除,总排列数为 \(\frac {x!y!}{(x+y)!}\)

时间复杂度 \(O(n^2k^2)\)

posted @ 2023-10-10 22:18  Lgx_Q  阅读(15)  评论(0编辑  收藏  举报