Codeforces 380E Sereja and Dividing
2024-08-27 03:40:29
题面
题解
有精度要求所以只用求几十次就差不多了
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);
}
最新文章
- Mac: Jdk版本切换
- Python基础:序列(字符串)
- Robot Motion 分类: POJ 2015-06-29 13:45 11人阅读 评论(0) 收藏
- 程序设计第三次作业--C++计算器初始部分
- 剑指Offer14 逆序链表
- uoj 67 新年的毒瘤 割点
- .bash_profile备份
- 如何将磁盘从GPT格式转换成MBR
- myeclipse中自己手动配置maven
- ThinkPHP多应用/项目配置技巧(使用同一配置文件)--(十六)
- Eclipse扩展安装插件方式
- Python 代码规范
- iOS Socket 整理以及CocoaAsyncSocket、SRWebSocket源码解析(一)
- Centos更改镜像源
- 电脑中安装多个jdk,eclipse的选择!
- Linux镜像清理日志操作
- bsp 总结
- 第二章&#160;向量(d5)有序向量:插值查找
- SpringCloud之Eureka集群
- Flask结合Redis消息队列实现电影弹幕