【学习笔记】CF708E Student‘s Camp
确实是非常困难的题目啊
我尝试去感受它。每一层是一个二维区间,这太复杂了。
但是我对路径就比较熟。这样,右端点的取值范围就变成了一个区间,问题的维度得到了下降。
考虑如何刻画这条路径。其实前面的铺垫已经足够充分了,问题可以等价于将每一行看成楼房,楼房之间有一些通道,代表这条路径上不拐弯的部分。
我们仔细思考一下,一个方案的贡献应该是 它所包含的通道的概率的乘积。
在这之前,我们不得不做一些准备工作。这是耗时的,但同时也是必须的。
考虑高度为 h h h,长度为 l l l的通道出现的概率。设出现高度为 i i i的楼房对应的概率为 P ( i ) P(i) P(i),这是可以预处理求出来的,具体求出区间 [ i , j ] [i,j] [i,j]出现的概率然后累加一下即可。设 M ( i ) M(i) M(i)表示楼房高度 ≥ i \ge i ≥i的概率, N ( i ) N(i) N(i)表示楼房高度 < i <i <i的概率,这显然也可以预处理求得。那么通道出现的概率就是 M ( i ) 2 N ( i ) l − 1 M(i)^2N(i)^{l-1} M(i)2N(i)l−1。
考虑楼房最大高度从 h h h变成 h + 1 h+1 h+1时,不重不漏的计算答案。记 g i g_i gi表示长度为 i i i的区间对应的答案。取最靠左边的两个相邻的高度为 h + 1 h+1 h+1的楼房,设通道长度为 l l l,那么我们还要知道通道间高度恰好为 h h h的楼房的数目才能计算答案,于是难以为继了。
一语成戳了。真的是二维容斥。
记 P ( i ) = ( K i ) p i ( 1 − p ) K − i P(i)=\binom{K}{i}p^i(1-p)^{K-i} P(i)=(iK)pi(1−p)K−i, P ( l , r ) P(l,r) P(l,r)表示这一行剩下区间 [ l , r ] [l,r] [l,r]的概率,显然 P ( l , r ) = P l − 1 P m − r P(l,r)=P_{l-1}P_{m-r} P(l,r)=Pl−1Pm−r。
设而不求。设 h i , l , r h_{i,l,r} hi,l,r表示到第 i i i行还剩区间 [ l , r ] [l,r] [l,r]的概率, f i , r f_{i,r} fi,r表示右端点为 r r r的 h h h的和, g i , l g_{i,l} gi,l表示左端点为 l l l的 h h h的和, F i , r F_{i,r} Fi,r表示右端点小于等于 r r r的 h h h的和, G i , l G_{i,l} Gi,l表示左端点大于等于 l l l的 h h h的和。
与上述路径不同的地方在于,维度变多了,但是转移式变得非常清晰: h i , l , r = P ( l , r ) ∑ [ l ′ , r ′ ] ∩ [ l , r ] ≠ ∅ h i − 1 , l ′ , r ′ h_{i,l,r}=P(l,r)\sum_{[l',r']\cap [l,r]\ne \empty}h_{i-1,l',r'} hi,l,r=P(l,r)∑[l′,r′]∩[l,r]=∅hi−1,l′,r′。容斥有讲究,这里考虑用总方案数减去 r ′ < l r'<l r′<l和 l ′ > r l'>r l′>r的情况,也就是 h i , l , r = P ( l , r ) ( F i − 1 , m − F i − 1 , l − 1 − G i − 1 , r + 1 ) h_{i,l,r}=P(l,r)(F_{i-1,m}-F_{i-1,l-1}-G_{i-1,r+1}) hi,l,r=P(l,r)(Fi−1,m−Fi−1,l−1−Gi−1,r+1)。
其实接下来思路非常简单。只要把 f , g f,g f,g都求出来, F , G F,G F,G都可以通过做前缀和求到。把 h h h带进去不就变成只包含 f , g , F , G f,g,F,G f,g,F,G的式子了吗。
复杂度 O ( n m ) O(nm) O(nm)。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17529969.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」