HDU6568 Math(2019江西省赛 期望dp)
发布日期:2021-06-30 10:24:01
浏览次数:2
分类:技术文章
本文共 999 字,大约阅读时间需要 3 分钟。
二刷这题,做起来思路非常清晰,但是细节问题却调了几十分钟…醉了
定义 f [ i ] f[i] f[i]为和机器人在点 i i i剩余的期望步数
若下一步没有丢下机器人
( 1 − p ) ∗ ( f [ i + 1 ] + 1 ) (1-p)*(f[i+1]+1) (1−p)∗(f[i+1]+1)
若下一步丢下了机器人,可能立马发现机器人,也可能下一步发现…
最后到了 l l l,就是剩余所有可能性了
p ∗ ( q ∗ ( 1 − q ) 0 f [ i ] + q ∗ ( 1 − q ) 1 f [ i ] + q ∗ ( 1 − q ) 2 f [ i ] . . . ) p*(q*(1-q)^0f[i]+q*(1-q)^1f[i]+q*(1-q)^2f[i]...) p∗(q∗(1−q)0f[i]+q∗(1−q)1f[i]+q∗(1−q)2f[i]...)
发现 1 − q 1-q 1−q的次方是一个等比数列,使用前缀和来优化转移
#includeusing namespace std;const int maxn = 1e5+10;double f[maxn],pre[maxn],c[maxn];int main(){ int l,chu; double p,q,base; while( cin >> l >> p >> q ) { base = q; chu = 0; for(int i=1;i<=l+2;i++) { pre[i] = pre[i-1]+base; c[i] = c[i-1]+base*chu; chu += 2; base *= (1-q); } f[l] = 0; for(int i=l-1;i>=0;i--) { int yu = l-i; double kl = 1.0-pre[yu]; f[i] = (f[i+1]+1)*(1-p)+p*c[yu]+p*kl*(2*l-2*i); if( 1.0-p!=0 ) f[i] /= ( 1.0-p ); // f[i] = f[i]+1; } printf("%.8lf\n",f[0]); }}
转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/109613045 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 10时13分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
我是如何看Vue源码的
2019-04-30
在 Vue 中用 Axios 异步请求API
2019-04-30
为什么总是面试造火箭呢?做前端真的有这么难么?
2019-04-30
85道 Vue 面试题,内含详细讲解(涵盖入门到精通,自测 Vue 掌握程度)
2019-04-30
如何安装以及使用vsftpd服务
2019-04-30
Linux之磁盘与分区的管理(快速入门)
2019-04-30
LVM逻辑卷------基础命令详解(三分钟入门)
2019-04-30
LVM逻辑卷------详细操作过程(三分钟上手)
2019-04-30
mysql——介绍及安装与基本用法
2019-04-30
MySQL数据库之索引
2019-04-30
MYSQL——事务操作+视图+存储引擎
2019-04-30
Mysql——完全备份+增量备份+备份恢复
2019-04-30
MySQL进阶查询(SELECT 语句高级用法)
2019-04-30
Mysql 之主从复制
2019-04-30
LVS负载均衡------NAT模式
2019-04-30
MYSQL 之 读写分离
2019-04-30
MYSQL 之 MHA高可用架构搭建
2019-04-30
部署 LVS-DR + keepalived 高可用群集
2019-04-30
Haproxy搭建web群集
2019-04-30
Nginx+Tomcat部署负载均衡
2019-04-30