【题解】CF442B Andrey and Problem 以及 [USACO19FEB]Cow Dating P
先来看第二题。
[USACO19FEB]Cow Dating P
这是一个关于概率的问题,即求一个最优区间满足恰好有一个成立的概率最大。
我们考虑从 n 到 n+1 有什么变化(这是解决这类问题的基本思路)
设 ∏ i = 1 n ( 1 − p i ) = x \prod_{i=1}^n (1-p_i) = x ∏i=1n(1−pi)=x
记前 n n n 项只有一个人答对的概率为 f n f_n fn
现在我们可以开始推式子。
- 如果第 n + 1 n+1 n+1 道题答对了, p n + 1 ∗ x p_{n+1} * x pn+1∗x
- 如果第 n + 1 n+1 n+1 道题没有答对, ( 1 − p n + 1 ) ∗ f n (1-p_{n+1})*f_n (1−pn+1)∗fn
所以 f n + 1 = p n + 1 ∗ x + ( 1 − p n + 1 ) ∗ f n f_{n+1}=p_{n+1} * x+(1-p_{n+1})*f_n fn+1=pn+1∗x+(1−pn+1)∗fn
令 f n + 1 − f n > 0 f_{n+1} - f_{n} > 0 fn+1−fn>0 (单纯为了方便变形或者说成研究增减性)
即 ( x − f n ) ∗ p n + 1 > 0 (x-f_n) * p_{n+1} > 0 (x−fn)∗pn+1>0 ,等价于 x > f n x>f_n x>fn 。
到这里 f n f_n fn 还是变量,我们考虑消去。
考虑 f n f_n fn 的定义,从而得到:
∏ i = 1 n ( 1 − p i ) > ∏ i = 1 n ( 1 − p i ) ∗ ∑ i = 1 n p i 1 − p i \prod_{i=1}^n (1-p_i) > \prod_{i=1}^n (1-p_i)*\sum_{i=1}^n \frac{p_i}{1-p_i} ∏i=1n(1−pi)>∏i=1n(1−pi)∗∑i=1n1−pipi
即 ∑ i = 1 n p i 1 − p i < 1 \sum_{i=1}^n\frac{p_i}{1-p_i}<1 ∑i=1n1−pipi<1 。
至此,我们固定右端点,然后二分左端点即可。
注意开 long double 。
利用上一题的结论,来看第一题。
CF442B Andrey and Problem
本题和上一题的区别在于并没有钦定区间。
也就是说限制少了,难度高了。
但是我们仍然可以通过分析得出结论。
假设最优答案是一个大小为 k 的某个状态。我们不难得出对于任何子集为 k-1 的满足 ∑ i = 1 k − 1 p [ a [ i ] ] 1 − p [ a [ i ] ] < 1 \sum_{i=1}^{k-1}\frac{p[a[i]]}{1-p[a[i]]}<1 ∑i=1k−11−p[a[i]]p[a[i]]<1 。
现在考虑把其中一个数调整到更大的 p [ i ] p[i] p[i] 。
根据 f n + 1 = ( x − f n ) ∗ p n + 1 + f n f_{n+1}=(x-f_n) * p_{n+1}+f_n fn+1=(x−fn)∗pn+1+fn
又因为 x − f n > 0 x-f_n>0 x−fn>0 所以 p n + 1 p_{n+1} pn+1 越大答案越优。
此时将最小的 p i p_i pi 替换成较大值,可以得到更优策略,与假设前提矛盾。这样我们就证明了它。
总结:(解决这类问题的关键)
- 推式子的能力
- 问题的转化能力,学会换角度思考
__EOF__

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