题面

洛谷传送门

题解

博客

有精度要求所以只用求几十次就差不多了

CODE

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAXN = 300005;
struct node {
int v, id;
inline bool operator <(const node &o)const {
return v < o.v || (v == o.v && id < o.id);
}
}p[MAXN];
int n, pre[MAXN], nxt[MAXN];
int main () {
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d", &p[i].v), p[i].id = i, pre[i] = i-1, nxt[i] = i+1;
sort(p + 1, p + n + 1);
double ans = 0;
for(int i = 1; i <= n; ++i) {
double l = 0, r = 0, pw = 1;
int x = p[i].id, lp = x, rp = x;
for(int j = 1; j <= 50; ++j) {
pw /= 2;
if(lp) l += pw*(lp - pre[lp]), lp = pre[lp];
if(rp<=n) r += pw*(nxt[rp] - rp), rp = nxt[rp];
}
ans += 2*l*r*p[i].v;
nxt[pre[x]] = nxt[x];
pre[nxt[x]] = pre[x];
}
printf("%.15f\n", ans/n/n);
}

最新文章

  1. Mac: Jdk版本切换
  2. Python基础:序列(字符串)
  3. Robot Motion 分类: POJ 2015-06-29 13:45 11人阅读 评论(0) 收藏
  4. 程序设计第三次作业--C++计算器初始部分
  5. 剑指Offer14 逆序链表
  6. uoj 67 新年的毒瘤 割点
  7. .bash_profile备份
  8. 如何将磁盘从GPT格式转换成MBR
  9. myeclipse中自己手动配置maven
  10. ThinkPHP多应用/项目配置技巧(使用同一配置文件)--(十六)
  11. Eclipse扩展安装插件方式
  12. Python 代码规范
  13. iOS Socket 整理以及CocoaAsyncSocket、SRWebSocket源码解析(一)
  14. Centos更改镜像源
  15. 电脑中安装多个jdk,eclipse的选择!
  16. Linux镜像清理日志操作
  17. bsp 总结
  18. 第二章&#160;向量(d5)有序向量:插值查找
  19. SpringCloud之Eureka集群
  20. Flask结合Redis消息队列实现电影弹幕

热门文章

  1. 剑指offer22:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
  2. python 之 前端开发(盒子模型、页面布局、浮动、定位、z-index、overflow溢出)
  3. 文件类型分类:头文件dirent.h中定义的文件类型与linux内文件符号对应关系
  4. OpenCV学习笔记3
  5. C++ 数组和vector的基本操作
  6. restTemplate源码解析(目录)
  7. iOS - 性能优化:Instruments使用简介
  8. iOS - Scenekit3D引擎初探之 - 给材质贴图
  9. Mac 下编译 Hadoop
  10. Java虚拟机(五):JVM 类加载机制