【概率DP】BZOJ4318-OSU!
2016-07-05 21:12
246 查看
【题目大意】
一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串。在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含(也就是极长的一串1,具体见样例解释)
现在给出n,以及每个操作的成功率,请你输出期望分数,输出四舍五入后保留1位小数。
【思路】 http://blog.csdn.net/popoqqq/article/details/49512533
假如这个01串使确定的,考虑每新增一个位置,如果这个位置是0 ,则贡献为0 ,否则贡献为(x+1)3−x3=3x2+3x+1 ,其中x 为加入之前最长的全1后缀的长度
现在这个问题变成了期望问题,那么我们只需要维护一个x
的期望和x2
的期望即可。注意平方的期望不等于期望的平方。
*自己的补充:关于概率运算的本质:
为什么l1[cur]=(l1[1-cur]+1)*a1呢?其实这个式子应该是这样的:
当前有a1的概率能够击中,产生的期望后缀长度(l1[1-cur]+1)*a1①
当前有(1-a1)的概率不能够击中,产生的期望后缀长度0*(1-a1)②
①+②→l1[cur]=(l1[1-cur]+1)*a1
f则是一般的递推加法,当前这次击中的概率不会影响f[i-1],而当前概率影响的因素只有期望分值得增加量
一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串。在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含(也就是极长的一串1,具体见样例解释)
现在给出n,以及每个操作的成功率,请你输出期望分数,输出四舍五入后保留1位小数。
【思路】 http://blog.csdn.net/popoqqq/article/details/49512533
假如这个01串使确定的,考虑每新增一个位置,如果这个位置是0 ,则贡献为0 ,否则贡献为(x+1)3−x3=3x2+3x+1 ,其中x 为加入之前最长的全1后缀的长度
现在这个问题变成了期望问题,那么我们只需要维护一个x
的期望和x2
的期望即可。注意平方的期望不等于期望的平方。
*自己的补充:关于概率运算的本质:
为什么l1[cur]=(l1[1-cur]+1)*a1呢?其实这个式子应该是这样的:
当前有a1的概率能够击中,产生的期望后缀长度(l1[1-cur]+1)*a1①
当前有(1-a1)的概率不能够击中,产生的期望后缀长度0*(1-a1)②
①+②→l1[cur]=(l1[1-cur]+1)*a1
f则是一般的递推加法,当前这次击中的概率不会影响f[i-1],而当前概率影响的因素只有期望分值得增加量
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> using namespace std; double l1[2],l2[2],f[2]; int n; int main() { scanf("%d",&n); int cur=0; for (int i=1;i<=n;i++,cur=1-cur) { double a1; scanf("%lf",&a1); l1[cur]=(l1[1-cur]+1)*a1; l2[cur]=(l2[1-cur]+2*l1[1-cur]+1)*a1; f[cur]=f[1-cur]+(3*l2[1-cur]+3*l1[1-cur]+1)*a1; } printf("%.1lf\n",f[1-cur]); return 0; }
相关文章推荐
- 符号(void *)何解?符号(void **)又何解??
- web前端基础学习入门篇(三)
- Deferred Lighting (延迟光照) + Light Pre-Pass 实现多光源动态阴影
- sql优化的一些问题
- spark 1.6.0 core源码分析3 Master HA
- ubuntu14.04 php nginx mysql redis phpmyadmin
- hdoj3790 【最短路】
- 华为机试题--1.字符串最后一个单词的长度
- **在Ubuntu系统下Copley CAN-PCI驱动的安转和开机自启动配置**
- Java集合排序(看完秒懂)
- 网页头部优化
- html+css代码优化推荐读物
- 继承--is-a关系
- js的navigator对象
- 3、使用JaxWs开发Web Service
- C Looooops(poj 2115)
- mac 下virtual box 安装多台centOs并配置网络集群
- 渗透工程师必备的几款火狐插件
- listview的优化建议
- HDU 2425 Hiking Trip(bfs+优先队列)