当前位置: 首页 > news >正文

网站建设的实际价值seo技术顾问阿亮

网站建设的实际价值,seo技术顾问阿亮,企业类网站模板免费下载,做抖音seo排名软件是否合法题目链接:Problem - B - Codeforces 题目大意: 有一个长度为 n 的序列,第 i 个位置上为 "O" 的概率为 ,为 "X" 的概率为 。 一个序列的得分定义为: 求整个序列的期望得分。 Solution1: 注…

题目链接:Problem - B - Codeforces

题目大意:

有一个长度为 n 的序列,第 i 个位置上为 "O" 的概率为 p_{i} ,为 "X" 的概率为 1-p_{i} 。

一个序列的得分定义为:

求整个序列的期望得分。

Solution1:

注意到一个关键性质:(x + 1) ^ 2 - x^2 = 2x + 1

也就是说,我们在已经有一段长度为 x 的连续 "O" 序列的情况下,再加多一个 "O" ,得到的贡献就会加上 "2x+1" 。

于是就把平方的期望转化成了线性的

可以设一个 len[i] 表示以 i 结尾的连续 "O" 序列的期望长度,f[i] 表示序列1~ i 的期望贡献,那么:

f[i] = (1-p[i]) * f[i-1] + p[i] * (f[i-1] + 2 * len[i-1] + 1)

len[i] = p[i] * (len[i-1] + 1) + (1-p[i]) * 0 = p[i] * (len[i-1] + 1)

Code:

#include<cstdio>
#include<cstring>
using namespace std;#define N 100005int n;
double p[N],len[N],f[N];int main()
{scanf("%d",&n);for (int i = 1;i <= n;++ i) scanf("%lf",&p[i]);len[0] = f[0] = 0.00;for (int i = 1;i <= n;++ i){f[i] = (1.00 - p[i]) * f[i - 1] + p[i] * (f[i - 1] + 2.00 * len[i - 1] + 1.00);len[i] = p[i] * (len[i - 1] + 1.00);}printf("%.6lf\n",f[n]);return 0;
}

Solution2:

Solution1是最为广泛的做法,而官方解答里还有一个更为巧妙的发现。

注意到另一个关键性质:n^2 = 2C_{n}^2 + n

也就是说,对于一段长度为 n 的连续 "O" 序列,得分贡献可以拆分为两部分:

1. 每一个 "O" 贡献 1 分

2. 每一对 "OO" 贡献 2 分 (不一定要相邻)

于是我们又可以利用期望的线性性质拆分来做。

第一部分的答案很简单,就是计算整个序列期望出现多少次 "O" ,即  \sum p_{i} 。

第二部分的答案,我们要计算的就是 [i,j] 这段序列出现全 "O" 的概率,记作 P(i,j) ,其实 P(i,j) 代表的就是第 i 个为 "O" 和第 j 个为 "O" 的组合贡献,它并不包含譬如 P(i+1,j)、P(i,j + 1) ... 的贡献。那么这部分的答案就是 2\sum_{i < j} P(i,j) 。下面考虑如何快速计算 P(i,j):

(注意我们不可以用类似前缀和的想法维护前缀积,那样精度会爆掉)

可以设 f_{i} = \sum_{k < i} P(k,i),则  f_{i} = f_{i-1} * p_{i} + p_{i-1} * p_{i}

那么两部分答案加起来就是:Ans = \sum p_{i} + 2\sum_{i=2}^n f_{i}

Code:

#include<cstdio>
#include<cstring>
using namespace std;#define N 100005int n;
double p[N],f[N],ans;int main()
{scanf("%d",&n),ans = 0.00;for (int i = 1;i <= n;++ i) scanf("%lf",&p[i]),ans += p[i];f[1] = 0.00;for (int i= 2;i <= n;++ i) f[i] = f[i - 1] * p[i] + p[i - 1] * p[i],ans += 2.00 * f[i];printf("%.6lf\n",ans);return 0;
}

Solution2 看似比较难想,但它给了我们一种做题的全新思路。

http://www.dtcms.com/a/587659.html

相关文章:

  • 专注企业网站建设图片网站虚拟主机
  • 网站建设跟网站结构福州网站建设工作室
  • wordpress code editorseo站长综合查询工具
  • 医生在网站上做自我宣传wordpress 域名 根目录
  • 濮阳网站建设熊掌网络自己建网站需要钱吗
  • 多个标签的网站模板做电影平台网站怎么赚钱吗
  • 交互效果很好的网站查看网站后台登陆地址
  • vba 输出到日志文件
  • 对战平台网站怎么建设重庆优化seo
  • 网站要实现的电商功能女生做网站后期维护工作好吗
  • 免费做简单网站品牌加盟
  • 建设网站 注册与登陆企业服务网站开发
  • 怎么制作公众号长图谷歌搜索优化seo
  • 厦门网站建设定制多少钱手机界面设计说明
  • 企业网站建设费属于办公费吗网站页面怎么算
  • 企业管理顾问东莞网站建设最新招聘信息
  • 重庆网站建设seo优化关于网站建设总结
  • 网站建设与维护教程网站自动生成
  • 做数据库与网站招什么人新建网站二级网页怎么做
  • 公司网站开发需要多少钱网站模板如何删除
  • 广东营销型网站如果在阿里云上做自己的网站
  • 网站的ftp帐号网站自动化采集
  • 仓颉编程语言的并发编程:线程模型与使用实践
  • 保定网站公司wordpress多站点好吗
  • 商盈网站建设邢台网红排行榜
  • 巴塘网站建设中小企业网络营销方案
  • 网站模板设计报价单中国电信爱资源app
  • 手机网站建设价格明细表商丘网签查询
  • 哪个网络公司做网站好周口市城乡建设局网站
  • 大气手机网站模板深圳服务平台网站