题解poj2096

然后,简单翻译一下:

有n个bug,s个程序,每天能发现一个bug,求在每个程序中发现至少一个bug并将每一个bug都至少发现一次的期望天数。典型的期望dp。

如果忘了什么是期望之类的,出门左转数学选修2-3。

方案一:列分布列

很不幸,我们发现在比较差的情况下,也就是总在发现同一个bug时,我们将需要无穷天才能将bug找全。也就是说分布列将有无穷项,明显不可行。

方案二:dp[i][j]记录在j个系统中发现i个bug的期望天数

问题和方案一一样,不再重复了

方案三:dp[i][j]记录j个系统中发现i个bug后距成功的期望天数

这个方案是可行的,只要输出时输出dp[0][0]即可,在这里,dp[n][s]为0,然后自大而小转移到dp[0][0]即可。

有了状态,就需要转移方程了

能转移到dp[i][j]的共有四种情况:

1.新bug,新系统:值:(dp[i+1][j+1]+1),概率:(n-i)(s-j)/ns

2.新bug,旧系统:值:(dp[i+1][j]+1),概率:i(s-j)/ns

3.旧bug,新系统:值:(dp[i][j+1]+1),概率:(n-i)j/ns

4.旧bug,旧系统:值:(dp[i][j]+1),概率:ij/ns

也就是说:dp[i][j]=(dp[i+1][j+1]+1)(n-i)(s-j)/ns+(dp[i+1][j]+1)i(s-j)/ns+(dp[i][j+1]+1)(n-i)j/ns+(dp[i][j]+1)ij/ns,这时,我们发现等式两侧都有dp[i][j],我们需要把它整理出来

原式

现在,我们将dp[i][j]整理了出来,现在就是代码的问题了,在发标程之前,本蒟蒻说明一件事:

输出时要写成

而不是

虽然dp数组是double,但用”%.4lf”输出就会WA,此类题目精度是非常令人头疼的,本题有spj也并未卵用。

好了,上标程

Original: https://www.cnblogs.com/Grharris/p/10349841.html
Author: Grharris
Title: 题解poj2096

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578012/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 二值图像求取连通域算法

    一幅图像二值化处理后往往包含多个区域,需要通过标记把它们分别提取出来。标记分割后图像中各区域的简单而有效的方法是检查各像素与其相邻像素的连通性。 在二值图像中,背景区像素的值为0 …

    Linux 2023年6月14日
    0135
  • JAVA中如何将以Date型的数据保存到数据库以Datetime型的字段中

    用Timestamp就行了 recordOuttime是Date类型 import java.sql.Timestamp; Record record = recordMapper…

    Linux 2023年6月8日
    083
  • 关于Python, ftplib模块中的cwd()进入含中文目录失败的问题

    使用Python的ftplib模块连接ftp服务器时, 使用cwd()连接含中文的目录, 报错 : UnicodeEncodeError: ‘latin-1&#8217…

    Linux 2023年6月6日
    0111
  • keil使用汇总

    ​ 一:参考博客 参考的教程如下: 首先必须声明的一点是所有的博客都来自于博主strongerHuang,我只是为了记录方便copy下来,如有侵权,请联系删除帖子。链接地址如下:h…

    Linux 2023年6月13日
    0135
  • 记录一次shell脚本环境全局变量在函数内部生效问题

    背景 计划核对内网IP的使用情况,所以写了个小脚本扫描有哪些IP还在使用。执行脚本过程中发现函数中一直获取不到变量的值,排查后将结论记录下来。 问题现象 已经配置了全局变量,但是在…

    Linux 2023年6月14日
    0108
  • 祖传代码如何优化性能?

    hello大家好呀,我是小楼~ 今天又带来一次性能优化的分享,这是我刚进公司时接手的祖传(坏笑)项目,这个项目在我的文章中屡次被提及,我在它上面做了很多的性能优化,比如《记一次提升…

    Linux 2023年6月8日
    0128
  • 脚本安装lamp

    脚本安装lamp [root@localhost ~]# mkdir lamp [root@localhost ~]# cd lamp/ [root@localhost lamp]…

    Linux 2023年6月6日
    0131
  • docker 部署etcd

    原文链接:https://www.zhoubotong.site/post/77.html安装docker-compose这里就不介绍了,直接进入正题:创建etcd数据目录(根据需…

    Linux 2023年6月6日
    0117
  • MobaXterm左侧没有文件列表,没有SCP,不显示文件夹问题处理

    一般情况是你设置的session属性问题,具体做法是右键你的session,选edit session,SSH 如下图: 选择 SFTP protocol 并勾选 Follow S…

    Linux 2023年5月27日
    0150
  • 服务管理与通信,基础原理分析

    涉及轻微的源码展示,可放心参考; 一、基础简介 服务注册发现是微服务架构中最基础的能力,下面将从源码层面分析实现逻辑和原理,在这之前要先来看下依赖工程的基础结构,涉及如下几个核心组…

    Linux 2023年6月14日
    0140
  • 学习一下 SpringCloud (三)– 服务调用、负载均衡 Ribbon、OpenFeign

    (1) 相关博文地址: 学习一下 SpringCloud (一)– 从单体架构到微服务架构、代码拆分(maven 聚合): https://www.cnblogs.com/l-y…

    Linux 2023年6月11日
    093
  • 利用numpy实现list降维

    python读取数据库得到的事一个类似二维数组的list,有时候需要降维操作,numpy提供一个很有用的函数,可以直接使用 import numpy as np a = np.ar…

    Linux 2023年6月14日
    0124
  • 深入理解linux内核-进程和程序

    task_struct //进程基本信息 pid 进程id号 tgid 线程组id号,与线程组领头线程pid号相同 getpid()返回该值 tasks init_struct链接…

    Linux 2023年6月6日
    076
  • python学习(解析python官网会议安排)

    对html的解析是网页抓取的基础,分析抓取的结果找到自己想要的内容或标签以达到抓取的目的。 HTMLParser是python用来解析html的模块。它可以分析出html里面的标签…

    Linux 2023年6月14日
    0110
  • linux定时删除N天前的旧文件

    语句写法: find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} \; 例1:find /usr/local/b…

    Linux 2023年6月13日
    0108
  • Java秒杀系统二:Service层

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月11日
    0105
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球