首页 > 其他分享 >0215 模拟题解

0215 模拟题解

时间:2023-02-16 19:11:57浏览次数:42  
标签:概率 frac 复杂度 mask times 0215 模拟题 dp

0215 模拟题解

t1

按照时间 \(dp\),好处是和活着的怪物个数相关的概率容易计算。

\(dp(i,mask)\) 表示时间到 \(i\),\(mask\) 的怪已经被干掉的概率。

这里我们假设 \(1\) 到 \(i\) 之间选到 \(mask\) 中的已经被钦定是哪些时间,怎么分配,其他未被钦定。

转移的时候要么干掉一个怪物,要么不干掉,系数都是简单的。

最后还有 \(m-sum(mask)\) 的步数要去选到 \(U\backslash mask\) 中。

这个可以用背包解决。

具体地 \(f(i,mask)\) 表示选了 \(mask\) 中的共 \(i\) 个,顺序已经安排好的方案数。

用去掉 \(lowbit\) 的状态转移过来即可。

时间复杂度:\(O(2^nnm+2^nm^2)\)。

但是最后那个背包可以折半做,优化到 \(O(2^{n/2}m^2+2^nm)\)。

总的时间复杂度还是有 \(2^nnm\),在前面那个 \(dp\) 里。

空间复杂度:\(O(2^n+2^{n/2}m)\)。

t2

我会猜结论!

阶乘级别复杂度的暴力是容易的,然后可以对于 \(k\le 100\) 打表。

\(n\le10\) 就可以把 \(k\le 100\) 打出来了。

然后观察到 \(k\) 为奇数开头都是 \(2\),\(k\) 为偶数开头都是 \(1\)。

进一步对 \(k\bmod 4,8,16...\) 找规律,可以写出一个做法。

二进制拆分,从低到高考虑 \(k\) 的每一位,同时维护一个栈和答案序列,以及目前用到了 \(1\) 到 \(m\) 这些数。

如果是 \(1\),把 \(m+2\) 放入答案序列,\(m+1\) 加入栈顶。

如果是 \(0\),把栈顶加入答案序列并弹出,假如操作前栈为空,则先把 \(m+1\) 加入栈。

过程中顺便维护 \(m\)。

然后发现过了。

证明也不难证,首先观察操作次数 \(k\) 是怎么来的。

对于每个相邻逆序对 \(a_i,a_{i+1}\),考虑 \(a_{i+1}\) 之前有 \(c\) 个比 \(a_{i+1}\) 小的数,那么贡献为 \(2^c\)。

接下来贪心地想要去用若干 \(2\) 的整数次幂拼出 \(k\),容易归纳发现以上过程最优。

时间复杂度:\(O(\log k)\)。

空间复杂度:\(O(\log k)\)。

t3

做法类似 Span Covering 一题,感觉很有启发意义。

首先考虑一些 \(dp\),但是都无可避免地要去维护整个状态,指数级别显然不行。

\(dp(i,j)\) 表示总共 \(i\) 个黑格子,\(j\) 个连续段,连续段之间间隔 \(\ge 2\),第一次到达这个状态的概率。

那么我们为什么可以这么维护呢?

首先最开始的状态用连续段来描述可以描述为连续段的长度数组和间隔长度数组。

连续段长度数组不同,其他都相同的状态显然可以合并到一起。

间隔长度数组不同,其他都相同的状态都是等概率的,总概率是这个相等的概率乘上方案数。

所以只需要维护单个的概率即可。

初始值是 \(dp(1,1)=1\),因为是环,第一步无所谓。

转移是

\[dp(i,j)\times j\times coef\rightarrow dp(i+1,j+1) \ 新开一段\\ dp(i,j)\times 2j\times coef\rightarrow dp(i+1,j) \ 放在一段旁边 \\ dp(i,j)\times 2j\times coef\rightarrow dp(i+2,j)\ 放在一段旁边的旁边 \\ dp(i,j)\times 2j\times coef\rightarrow dp(i+2,j-1) \ 合并间隔为 2 的两段\\ dp(i,j)\times j\times coef\rightarrow dp(i+3,j-1)\ 合并间隔为 3 的两段 \]

上述式子中 \(coef\) 的值为 \(\frac 1 {D-i}\),表示操作一次的概率。

为什么不是 \(\frac 1 D\)?

考虑选已经是黑色的格子,概率是 \(\frac i D\)。

选到另外 \(D-i\) 个中的一个的概率是

\[\frac 1 {D-i}\bigg(\frac {D-i} D+\frac i D\frac {D-i}D+(\frac i D)^2\frac {D-i} D+...\bigg) \]

令 \(p=\frac i D\),后面的式子是 \((1-p)(1+p+p^2+...)=(1-p)\frac 1 {1-p}=1\)。

因此系数就是 \(\frac 1 {D-i}\)。

然后我们对每个不同的状态分别计算贡献。

一个状态 \(dp(i,j)\) 对答案的贡献为

\[dp(i,j)\times i^t\times \binom {D-i-j-1}{j-1}\times \frac D {D-i} \]

组合数的系数是把 \(D-i\) 个白格子作为间隔分配到 \(j\) 个里面,每个都至少是 \(2\)。

那么先拿出 \(2j\) 个放好,剩下 \(D-i-2j\) 中插入 \(j-1\) 个板,系数就是这样了。

最后那个系数是,已经在这个状态继续选黑格子的概率是 \(\frac i D\)。

那么贡献是 \(1+\frac i D+(\frac i D)^2+...\)。

令 \(p=\frac i D\),那么就是 \(\frac 1 {1-p}=\frac D {D-i}\)。

另一种理解方式是,在 \(n\) 个物品中选到 \(m\) 个中的一个的期望步数是 \(\frac n m\)。

所以要 \(\frac D {D-i}\) 步才能选到一个白格子,有 \(\frac D{D-i}-1\) 步不变,再有刚到的一次,加起来共 \(\frac D {D-i}\)。

然后就做完了!

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

空间复杂度:\(O(n^2)\)。

标签:概率,frac,复杂度,mask,times,0215,模拟题,dp
From: https://www.cnblogs.com/hellojim/p/17127950.html

相关文章

  • TCC---分布事务4 笔记20230215
            ......
  • 0215
    今天做了昨天的T3以及去年省选的两个T3。[模拟赛20230214]两岸的猿第二次遇到这种题了。首先n^2dp是好做的,但是显然不能通过此题。然后我们可以把dp的转移看成边,然......
  • 与AI对话 -- 20230215 -- linux 启动参数与控制台
    linux启动参数console=ttyS0,115200n8console=tty0说明console=ttyS0,115200n8:指定系统使用ttyS0(ttyS1、ttyS2以此类推)串口作为主控台,115200n8意思是以115200即......
  • 【CCCC】L2-032 彩虹瓶 (25分),模拟题,出栈顺序
    problemL2-032彩虹瓶(25分)rb.JPG彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要......
  • 【CCCC】L2-028 秀恩爱分得快 (25分),模拟题
    problemL2-028秀恩爱分得快(25分)古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了K......
  • 【CCCC】L2-029 特立独行的幸福 (25分),模拟题,set用法
    problemL2-029特立独行的幸福(25分)对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到1,就称该数为幸福数。1是一个幸福数。此......
  • 【CCCC】L2-030 冰岛人 (25分) 模拟题,二叉树链式存储,从底部向上
    problemL2-030冰岛人(25分)2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下:iceland.JPG冰岛......
  • 230102模拟题解
    t1容易发现对于奇数和偶数,能满足条件的长度分别是单调的,所以可以分别二分答案检查。检查的时候对于差分序列做哈希即可,然后用set/map/哈希表判\(B\)的子段是否有\(A......
  • 17_2 kubernetes CKA 模拟题总结
    做题前注意是否在要求的上下文#查看当前所在的contextkubectlconfigcurrent-context#输出kubernetes-admin@kubernetes#使用指定的contextkubectlconfigus......
  • 20220215_安装nvidia gpu
    20220215_安装nvidiagpu版本信息:centos8.5一、安装步骤:1.1.下载驱动,注意版本下载对应驱动https://www.nvidia.cn/Download/index.aspx?lang=cnlscpi//先查看硬件设备型号......