Luogu5242

通过观察数据,我们可以发现,右端点的取值是单调递增的。于是,我们可以极限一波,用一个双指针法,类似于队列。

右端点的取值满足以下公式:

(1-p1)(1-p2)..(1-pn) * (p1/(1-p1) + p2/(1-p2) + ... + pn/(1-pn))

记录两个变量,表示和和积即可。

tmp1为积,tmp2为和

当任何一个 p 大于 0.5 的时候,选择一段的答案不比选择这一个的答案大。因此直接特判这种情况。

常规化式子

#include<bits/stdc++.h>
using namespace std;
typedef long double llf;
int n;
llf p[1000001],ans=0,tmp1=1,tmp2;//tmp1一定要赋值为1,如果是0的话大家都知道下场
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) {
cin>>p[i];
p[i]/=1e6;
ans=max(ans,p[i]);
}
int j=1;
for(int i=1;i<=n;i++) {
while(j<=n&&tmp1*tmp2<tmp1*(1-p[j])*(tmp2+p[j]/(1-p[j]))){//根据公式判断
tmp1*=(1-p[j]);
tmp2+=p[j]/(1-p[j]);//更新两个变量
j++;
}
ans=max(ans,tmp1*tmp2);//更新答案
tmp1/=(1-p[i]);
tmp2-=p[i]/(1-p[i]);
}
printf("%d",(int) (1e6*ans));
return 0;
}

[USACO19FEB]Cow Dating的更多相关文章

  1. P5242 [USACO19FEB]Cow Dating

    题目链接 题意分析 首先我们可以得出计算公式 \[s_i=\prod_{k=1}^i(1-p_k)\] \[f_i=\sum_{k=1}^i\frac{p_k}{1-p_k}\] 那么 \[ans(i ...

  2. [USACO19FEB]Cow Dating——找规律

    原题戳这里 题解 显然原题等价于让我们求这个式子\(\prod\limits_{i=l}^{r}(1-p_i)\sum\limits_{i=l}^{r}\frac{p_i}{1-p_i}\)的最大值是 ...

  3. 洛谷 P5242 [USACO19FEB]Cow Dating P

    这道题很有意思. 不难发现,对于一个区间 \([l, r]\),恰好只有一个奶牛接受邀请的概率为 \[\prod_{i=l}^r(1-p_i) \cdot \sum_{i=l}^r \frac {p_ ...

  4. 题解 P6098 【[USACO19FEB]Cow Land G】

    震惊,蒟蒻学树剖第二天就打题解 所以说,理解之后树剖这种东西其实难度真心不大.至少这种模板题都可以秒切的 这里推荐一个博客: 树剖详解 蒟蒻就是在这个博客上学到的 如果想看我自己写的总结,请点 我的博 ...

  5. 树链剖分详解&题解 P6098 【[USACO19FEB]Cow Land G】

    看到各位大佬们已经把其他的东西讲的很明白了,我这个 juruo 就讲一讲最基本的树链剖分吧. 0.树剖是什么?能吃吗? 不能吃 树剖是树链剖分的简称,我们一般说的树剖其实指重链剖分.当然,还有一种长链 ...

  6. P5541 [USACO19FEB]Sleepy Cow Herding

    ri,被黄题虐. 思路:贪心?? 提交:2次 错因:没有特判 题解: 先排序. 最小代价:固定区间长度为\(n\),我们扫一遍数组看区间最多包含几个数,设为 \(mx\) ,答案就是\(n-mx+1\ ...

  7. POJ 3278 Catch That Cow(bfs)

    传送门 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 80273   Accepted: 25 ...

  8. 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心

    SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. #include <iostream> #include <cstdi ...

  9. HDU Cow Sorting (树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2838 Cow Sorting Problem Description Sherlock's N (1  ...

随机推荐

  1. Python爬虫入门五之URLError异常处理

    大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理. 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的 ...

  2. [SoapUI] JsonPath is to JSON what XPath is to XML

    1.通过JsonUtil验证Json的有效性 2.两种方式通过JPath读取Json的内容

  3. 白盒测试实践-任务进度-Day01

    12-05 任务安排 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 任务划分 任务1:依据白盒测试方法设计测试用例 说明:我们小组就不使用测试管理工具了,直接用excel文件的形式记录,具 ...

  4. [GO]空接口

    package main import "fmt" //空接口的实际意义就在于在使用函数时,空接口可以接收任意类型的值,类似于python中的*args, **kwargs fun ...

  5. mysql表名忽略大小写配置

    linux下mysql默认是要区分表名大小写的.mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中:1)lower_case_table_names = 0  ...

  6. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader

    一直报这个错误 错误原因jar包没有导入到.classes文件下,需要导入到此文件下,因为用的是user library,所以只有逻辑导入,没有实际导入,切换下就好了,具体看如下文章 http://w ...

  7. 【转载】python计算文件的行数和读取某一行内容的实现方法

    一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ...

  8. 彻底的卸载SQL Server2005

    昨天不小心把SQL Server 2005弄坏了.所以,对彻底卸载他进行了研究.在这里记录一下,嘿嘿~ 1.首先在控制面板中卸载所有与SQL Server 2005相关的程序,要记得最后一个卸载Mic ...

  9. [Erlang04]为什么有了rpc还有net_kernel:connect/1?

    问题描述: RPC(Remote Procedure Call)远程程序调用: 如果要给另一个节点发信息:可以简单写成: call(Msg,Node) -> {server,Node}!{sel ...

  10. mysql 循环插入

    在mysql添加测试数据,想和mssql一样用循环实现,发现不管怎么样都执行失败 经查询发现mysql不支持匿名块,只能先创建出一个存储过程,执行,然后删除 CREATE PROCEDURE test ...