原题戳这里

题解

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

打打表,或者直观上感受一下,这东西是个凸壳,进一步观察,你会发现随着左端点的右移,最优决策点也在右移,于是拿个\(two\ pointer\)搞一搞就好了

凸性的证明在代码下面QWQ

代码:

#include <bits/stdc++.h>

using namespace std;

#define N 1000000

int n, p[N + 5];
long double prod[N + 5], sum[N + 5], ans; int main() {
scanf("%d", &n);
prod[0] = 1;
for (int i = 1; i <= n; ++i)
scanf("%d", &p[i]), prod[i] = p[i] / 1e6, sum[i] = sum[i - 1] + prod[i] / (1 - prod[i]), prod[i] = prod[i - 1] * (1 - prod[i]);
int j = 1;
for (int i = 1; i <= n; ++i) {
while (j + 1 <= n && prod[j + 1] * (sum[j + 1] - sum[i - 1]) >= prod[j] * (sum[j] - sum[i - 1])) j++;
ans = max(ans, prod[j] / prod[i - 1] * (sum[j] - sum[i - 1]));
}
printf("%lld\n", (long long)(ans * 1e6));
return 0;
}

证明:

①式子的值递增时,有如下不等式成立

\[\prod\limits_{i=l}^{r}(1-p_i)\sum\limits_{i=l}^{r}\frac{p_i}{1-p_i}\leqslant \prod\limits_{i=l}^{r+1}(1-p_i)\sum\limits_{i=l}^{r+1}\frac{p_i}{1-p_i}
\]

简单的化一下,会得到一个形式非常优美的东西

\[\sum\limits_{i=l}^{r}\frac{p_i}{1-p_i}\leqslant 1
\]

②式子的值递减时,同理①,可得到\(\sum\limits_{i=l}^{r}\frac{p_i}{1-p_i}\geqslant 1\)

然后又因为\(\sum\limits_{i=l}^{r}\frac{p_i}{1-p_i}\)在固定左端点并把右端点向右移动时是严格单增的,所以是凸的

有了上面的结论,也可以证明最优决策点的单调移动了

[USACO19FEB]Cow Dating——找规律的更多相关文章

  1. The Cow Lineup_找规律

    Description Farmer John's N cows (1 <= N <= 100,000) are lined up in a row.Each cow is labeled ...

  2. 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 ...

  3. [USACO19FEB]Cow Dating

    Luogu5242 通过观察数据,我们可以发现,右端点的取值是单调递增的.于是,我们可以极限一波,用一个双指针法,类似于队列. 右端点的取值满足以下公式: (1-p1)(1-p2)..(1-pn) * ...

  4. 洛谷 P5242 [USACO19FEB]Cow Dating P

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

  5. hdu 3951 - Coin Game(找规律)

    这道题是有规律的博弈题目,,, 所以我们只需要找出规律来就ok了 牛人用sg函数暴力找规律,菜鸟手工模拟以求规律...[牢骚] if(m>=2) { if(n<=m) {first第一口就 ...

  6. HDU 5703 Desert 水题 找规律

    已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...

  7. hdu4952 Number Transformation (找规律)

    2014多校 第八题 1008 2014 Multi-University Training Contest 8 4952 Number Transformation Number Transform ...

  8. CF456B Fedya and Maths 找规律

    http://codeforces.com/contest/456/problem/B CF#260 div2 B Fedya and Maths Codeforces Round #260 B. F ...

  9. hdu 4731 2013成都赛区网络赛 找规律

    题意:找字串中最长回文串的最小值的串 m=2的时候暴力打表找规律,打表可以用二进制枚举

随机推荐

  1. jq+js获取到table标签中的value

    前端jsp页面,(这里接收后端的参数方式没有放在上面) <table> <tbody id="fPzQwQwzbrList"> <tr id=&quo ...

  2. [OpenBenchMarking] AMD CPU 的性能简单对比

    来源: https://openbenchmarking.org/result/1710193-AL-EPYC7351P64 1. 2. 3. 4.

  3. SQL中的关键词

    AS的用法及妙用 https://www.cnblogs.com/zhaotiancheng/p/6692553.html

  4. neo4j 将一个节点的属性复制到另一个节点上

    在使用Python操作Neo4j数据库的时候,经常会遇到重复的节点,需要将一个节点的属性复制到另一个节点,之后将该节点删除. def copy_node_properties(source_node_ ...

  5. PID程序实现

    传统PID(位置式PID控制)调节: 这种算法的缺点是,由于全量输出,每次输出均与过去的状态有关,计算时要对 e(k) 进行累加,计算机运算工作量大.而且,因为计算机输出的 u(k) 对应的是执行机构 ...

  6. Laravel框架与ThinkPHP框架的不同

    作为一个PHP菜鸟初学Laravel框架 在学习过程中我发现了其与TP框架的不同点,由于时间问题和认识还不够完善我先写出其中几点,有错误的地方希望各位大牛斧正... 1.渲染模版方式的不同:在Lara ...

  7. 顶级Python库

    绝不能错过的24个顶级Python库 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 事实 ...

  8. FGL内置函数大全

    内置功能摘要: 内置的功能是什么?内置的功能列表支持的功能列表键代码表另请参阅:效用函数,变量,函数,操作符,内置类. ---------------------------------------- ...

  9. Memcache与Redis有什么区别?

    Redis 和 Memcache 都是基于内存的数据存储系统.Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-value数据库.Redis是一个开源的key-value存储系 ...

  10. 作业3:java对象模型

    一 对象表示机制 1 Hotsplot JVM内部对象表示系统 (1)OOP-Klass二分模型 OOP:Ordinary Object Pointer 或者OOPS.即普通对象指针,描述对象实例信息 ...