数据流中的算法

思路:

  线段树模拟;

  时间刚刚卡在边界上,有时超时一个点,有时能过;

来,上代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; #define maxn 1000005 int n,size,cnt,ai[maxn],L[maxn<<],R[maxn<<];
int mid[maxn<<],dis[maxn<<],to,x; double sum[maxn<<],sum2[maxn<<]; inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
} void tree_build(int now,int l,int r)
{
L[now]=l,R[now]=r;
if(l==r) return ;
mid[now]=l+r>>;
tree_build(now<<,l,mid[now]);
tree_build(now<<|,mid[now]+,r);
} void tree_add()
{
int now=,dis1=to*x,ss=to*dis1;
while(L[now]!=R[now])
{
dis[now]+=x,sum[now]+=dis1,sum2[now]+=ss;
if(to<=mid[now]) now=now<<;
else now=now<<|;
}
dis[now]+=x,sum[now]+=dis1,sum2[now]+=ss;
} int tree_query(int k)
{
int now=;
while(L[now]!=R[now])
{
if(k<=dis[now<<]) now=now<<;
else k-=dis[now<<],now=now<<|;
}
return L[now];
} inline void out(int X)
{
if(X>) out(X/);
putchar(X%+);
} int main()
{
int now=;in(n),in(size);
int ty;tree_build(,,);
while(n--)
{
in(ty);
if(ty==)
{
in(ai[++now]);
to=ai[now],x=,tree_add();
if(now>size) x=-,to=ai[now-size],tree_add();
continue;
}
if(ty==)
{
double res=sum[]/(double)dis[];
out((int)res),putchar('.'),putchar(''),putchar(''),putchar('\n');
continue;
}
if(ty==)
{
double p=sum[]/(double)dis[];
double res=(sum2[]-sum[]**p+p*p*dis[])/dis[];
printf("%.2lf",res),putchar('\n');
continue;
}
if(ty==)
{
int p=dis[];
if(p&) out(tree_query((p>>)+)),putchar('.'),putchar(''),putchar(''),putchar('\n');
else printf("%.2f",(double)(tree_query(p>>)+tree_query((p>>)+))/2.0),putchar('\n');
}
}
return ;
}

AC日记——数据流中的算法 51nod 1785的更多相关文章

  1. 51nod 1785 数据流中的算法 | STL的应用

    51nod 1785 数据流中的算法 题面 动态求平均数.方差.中位数. 题解 这道题的坑: 平均数在答案中是向下取整输出并在后面添加".00" 方差:平方的平均数减去平均数的平方 ...

  2. 51nod 1785 数据流中的算法 (方差计算公式)

    1785 数据流中的算法 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 20 难度:3级算法题   51nod近日上线了用户满意度检测工具,使用高级人工智能算法,通过用户访问时间.鼠 ...

  3. 【51nod 1785】数据流中的算法

    Description 51nod近日上线了用户满意度检测工具,使用高级人工智能算法,通过用户访问时间.鼠标轨迹等特征计算用户对于网站的满意程度.   现有的统计工具只能统计某一个窗口中,用户的满意程 ...

  4. 【51NOD】数据流中的算法

    [算法]数学 [题解] 1.平均数:累加前缀和.//听说要向下取整? 2.中位数:双堆法,大于中位数存入小顶堆,小于中位数存入大顶堆,保证小顶堆内数字数量≥大顶堆,奇数则取小堆顶,偶数则取两堆顶/2. ...

  5. AC日记——最小正子段和 51nod 1065

    最小正子段和 思路: 找最小的大于0的sum[j]-sum[i](j>i): 高级数据结构(splay)水过: 来,上代码: #include <cstdio> #include & ...

  6. AC日记——计算循环节长度 51nod 1035

    最长的循环节 思路: 我们尝试一种最简单的方法,模拟: 如何模拟呢? 每个数,对它模k取余,如果它的余数没有出现过,就补0继续模: 所以,当一个余数出现两次时,当前的长度即为循环节长度: 来,上代码: ...

  7. [算法]最小的K个数和数据流中的中位数

    1. 最小的K个数 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 思路 Java 中的PriorityQueue是 ...

  8. AC日记——codevs1688求逆序对

    AC日记--codevs1688求逆序对 锵炬 掭约芴巷 枷锤霍蚣 蟠道初盛 到被他尽情地踩在脚下蹂躏心中就无比的兴奋他是怎么都 ㄥ|囿楣 定要将他剁成肉泥.挫骨扬灰跟随着戴爷这么多年刁梅生 圃鳋 ...

  9. 数据流中的中位数 Find Median from Data Stream

    2019-04-17 16:34:50 问题描述: 问题求解: class MedianFinder { PriorityQueue<Integer> smaller; PriorityQ ...

随机推荐

  1. 用描述符实现classmethod方法和staticmethod方法

    1. @classmethod class ClassMethod: def __init__(self, func): self.func = func def __get__(self, inst ...

  2. Codeforces Round #435 (Div. 2) B (二分图) C(构造)

    B. Mahmoud and Ehab and the bipartiteness time limit per test 2 seconds memory limit per test 256 me ...

  3. jichu

    第 题 请编写函数 fun,其功能时:计算并输出当 x<0.97 时下列多项式的值,直到| sn-s(n-)|<0.000001 为止. Sn=+.5x+)/!x()+…+)()…..() ...

  4. poj 2533Longest Ordered Subsequence

    Longest Ordered Subsequence Description A numeric sequence of ai is ordered if a1 < a2 < - < ...

  5. Tricky Sum

    In this problem you are to calculate the sum of all integers from 1 to n, but you should take all po ...

  6. Java语言基础---逻辑运算(长路短路运算)

    长路短路运算的区别 长路与运算&:是指在两边都是整数时,是逐位与运算,在两边是关系运算时,是逻辑运算. 短路与运算&&:是指从左至右,遇到false,则停止后面的运算. 长路或 ...

  7. P2485 [SDOI2011]计算器

    P2485 [SDOI2011]计算器 题目描述 你被要求设计一个计算器完成以下三项任务: 1.给定y.z.p,计算y^z mod p 的值: 2.给定y.z.p,计算满足xy ≡z(mod p)的最 ...

  8. ogre3D学习基础4 -- 网格工具与硬件缓存

    三.网格工具(Mesh) 1.导出器(Exporters)--- 用于从模型生成器中得到数据并且导入到OGRE中去. 导出器是指通过3D模型工具的插件写成网格数据和骨骼动画的文件格式可以在OGRE中被 ...

  9. python - web自动化测试 - 元素操作 - 等待

    # -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: wait.py @ide: PyCharm Community Edi ...

  10. 安装 Redis的Python客户端redis-py

    安装 redis-py 使用easy_install sudo easy_install redis 源码安装 git clone https://github.com/andymccurdy/red ...