1785 数据流中的算法
基准时间限制:1.5 秒 空间限制:131072 KB 分值: 20 难度:3级算法题

 收藏
 关注

51nod近日上线了用户满意度检测工具,使用高级人工智能算法,通过用户访问时间、鼠标轨迹等特征计算用户对于网站的满意程度。

现有的统计工具只能统计某一个窗口中,用户的满意程度的均值。夹克老爷想让你为统计工具添加一个新feature,即在统计均值的同时,计算窗口中满意程度的标准差和中位数。
Input
第一行是整数n与k,代表有n次操作,时间窗口大小为k。
(1 <= n <= 10^6, 1 <= k <= 100)接下来的n行,每行代表一次操作。操作有“用户访问”、“查询均值”、“查询方差”、“查询中位数”四种。每行的第一个数代表操作类型。操作数1:用户访问
输入格式:<1, v>
用户的满意度v为闭区间[0, 100]中的任意整数。用户每访问一次,数据更新,移动统计窗口。操作数2:查询均值
输入格式:<2>
统计窗口内的用户满意度的均值。操作数3:查询方差
输入格式:<3>
统计窗口内用户满意度的方差操作数4:查询中位数
输入格式:<4>
统计窗口内用户满意度的中位数p.s. 在有查询请求时,窗口保证不为空
p.s.s. 有查询请求时,窗口可能不满
Output
对于“查询均值”、“查询方差”、“查询中位数”操作的结果,输出保留两位小数。
Input示例
12 3
1 1
1 2
1 3
2
3
4
1 4
1 5
1 6
2
3
4
Output示例
2.00
0.67
2.00
5.00
0.67
5.00

这道题平均数要保留整数,不要保留小数,题目中居然木有说..

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main(void)
{int n, i, k, t, c, a[105], b[105], now;double ave, ans, sum, all;memset(a, -1, sizeof(a));scanf("%d%d", &n, &k);now = 1;sum = all = 0;while(n--){scanf("%d", &t);if(t==1){scanf("%d", &c);sum += c-max(a[now], 0);if(a[now]==-1)all += 1;a[now++] = c;if(now>k)now = 1;}if(t==2)printf("%d.00\n", (int)(sum/all));if(t==3){ans = 0;ave = sum/all;for(i=1;i<=k;i++){if(a[i]==-1)continue;ans += (a[i]-ave)*(a[i]-ave);}ans /= all;printf("%.2f\n", ans);}if(t==4){c = 0;for(i=1;i<=k;i++){if(a[i]>-1)b[++c] = a[i];}sort(b+1, b+c+1);ans = (b[(c+1)/2]+b[c/2+1])/2.0;printf("%.2f\n", ans);}}return 0;
}

51nod-1785:数据流中的算法相关推荐

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

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

  2. 1785 数据流中的算法(模拟,乱搞)

    1785 数据流中的算法 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 20 

  3. AC日记——数据流中的算法 51nod 1785

    数据流中的算法 思路: 线段树模拟: 时间刚刚卡在边界上,有时超时一个点,有时能过: 来,上代码: #include <cstdio> #include <cstring> # ...

  4. 数据结构与算法之字符凭拼接最低字典序和数据流中取中位数

    数据结构与算法之字符凭拼接最低字典序和数据流中取中位数 目录 字符凭拼接最低字典序 数据流中取中位数 1. 字符凭拼接最低字典序 题目描述 思路: 创建一个比较器,比较的内容是(o1+o2).comp ...

  5. ⭐算法入门⭐《堆》中等02 —— LeetCode 703. 数据流中的第 K 大元素

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   设计一个找到数据流中第 ...

  6. 算法:数据流中的中位数

    如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值. 例如, [2 ...

  7. Leetcode295 数据流中的中位数-最小堆和最大堆

    题目 中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如,[2,3,4] 的中位数是 3:[2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两 ...

  8. leetcode 703. 数据流中的第K大元素 最小堆解法 c语言

    如题: 设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含 ...

  9. 从C语言的角度重构数据结构系列(七)-数据结构堆知识求解数据流中的第K大元素

    前言 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战应用系列课程 https://blog.csdn.net/wenyusuran/category_2239261.html ...

最新文章

  1. Java对多线程的支持
  2. 阿里云二面:你对限流了解多少?
  3. 如何更新 Exchange2003 SP2 中的智能邮件筛选器版本
  4. php扩展包启动,Composer 扩展开发:本地运行扩展包
  5. Vue3 的学习教程汇总、源码解释项目、支持的 UI 组件库、优质实战项目
  6. 我的工作日报 - 2020-9-15 星期二
  7. 主线程 唤醒_python线程之九:生产者消费者3种方式,2个线程1个协程
  8. 接收上传的multi-file的文件(四)
  9. python字符串是什么_python字符串表示什么
  10. linux ubuntu安装 mono,在 Ubuntu Server 上安装配置 Mono 生产环境
  11. 基于JAVA+Servlet+JSP+MYSQL的超市管理系统
  12. python零基础好学吗-Python零基础好学吗?零基础如何学习Python?
  13. Helm 3 完整教程(十七):Helm 流控制结构(1)if / else 语句
  14. 课时13—横屏竖屏事件
  15. 收集java精确截取字符串
  16. mysql索引的数据结构
  17. c语言mac图形化界面编写,「分享」C语言如何编写图形界面
  18. 2022,程序员的出路在哪里?
  19. 服务器IP变更后如果更新openfire 服务IP
  20. PMP项目管理适用于哪些行业?

热门文章

  1. python怎么读写文件-python3 excle(python怎么读写excel文件)
  2. 学python可以做什么职业-python学完之后比较适合哪些职业工作呢?
  3. python能做什么工作-谁适合学Python?学了Python可以做什么工作?
  4. python和java选择哪个-python和java哪个学起来更简单
  5. 四川首例 “自贡话智能语音识别系统”在检察院投用
  6. Hashmap存储大小
  7. c语言gettext的头文件,C语言中用GNU gettext实现本地化
  8. 计算机域名DNS设置,电脑的IP地址和DNS域名服务器如何设置
  9. element el-upload上传图片完成后隐藏上传
  10. 【MySQL快速入门】牛客网:条件查询(1)基础排序