怎样高速求取一段区间的平均值 用前缀的思想来看 很easy

可是 本题题意要求的是 大于等于一段长度的区间的平均值的最大值 并且给出的数据范围非常大 O(n*L)的直白比較算法 用于解决此问题不合适

这样的情况下 能够考虑用斜率来表示平均值 然后通过对斜率的讨论和比較斜率来找出最大平均值

我感觉是维护一个从当前点往前的最大斜率——去除上凸点(它和当前点的连线肯定不能是最大斜率)

code(别人的orz...)

#include <stack>
#include <cstdio>
#include <list>
#include <cassert>
#include <set>
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <functional>
#include <cstring>
#include <algorithm>
#include <cctype>
#include <string>
#include <map>
#include <cmath>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define SZ(x) (int)x.size()
#define Lowbit(x) ((x) & (-x))
#define MP(a, b) make_pair(a, b)
#define MS(arr, num) memset(arr, num, sizeof(arr))
#define PB push_back
#define X first
#define Y second
#define ROP freopen("input.txt", "r", stdin);
#define MID(a, b) (a + ((b - a) >> 1))
#define LC rt << 1, l, mid
#define RC rt << 1|1, mid + 1, r
#define LRT rt << 1
#define RRT rt << 1|1
const double PI = acos(-1.0);
const int INF = 0x3f3f3f3f;
const double eps = 1e-8;
const int MAXN = 1e5 + 10;
const int MOD = 1e9 + 7;
const int dir[][2] = { {-1, 0}, {0, -1}, { 1, 0 }, { 0, 1 } };
int cases = 0;
typedef pair<int, int> pii;int Q[MAXN], arr[MAXN];
char str[MAXN];int Check(int x1, int x2, int x3, int x4)
{return (arr[x2] - arr[x1-1]) * (x4-x3+1) - (arr[x4]-arr[x3-1])*(x2-x1+1);
}int main()
{//ROP;int T;scanf("%d", &T);while (T--){int len, L;scanf("%d%d", &len, &L);scanf("%s", str+1);for (int i = 1; i <= len; i++) arr[i] = arr[i-1] + str[i] - '0';int head = 0, tail = 0;pii ans = MP(1, L);for (int i = L; i <= len; i++){int j = i-L;while (head+1 < tail && Check(Q[tail-2], j, Q[tail-1], j) >= 0) tail--;Q[tail++] = j+1;while (head+1 < tail && Check(Q[head], i, Q[head+1], i) <= 0) head++;int tmp = Check(Q[head], i, ans.X, ans.Y);if (tmp > 0 || (tmp == 0 && i - Q[head] < ans.Y - ans.X))ans.X = Q[head], ans.Y = i;}printf("%d %d\n", ans.X, ans.Y);}return 0;
}

1451 - Average 高速求平均值相关推荐

  1. python求三个数平均值_Python操作Excel教程-average函数求平均值

    Python实战:找到\u201CB列\u201D的平均值,\u201C列C\u201D,\u201CD\u201D.这个过程有点麻烦.请仔细看以下步骤:\u201D.1. 核心代码2.操作结果3.流 ...

  2. excel求平均值AVERAGE出现#DIV/0!

    从csv导入数据到excel中时,有时看起来数据都是正常的,并且设置单元格格式为数值,利用AVERAGE函数求平均值时,依然报错:#DIV/0! 解决办法: 1.选中任意一个单元格,输入数字1.然后把 ...

  3. 计算机word求积公式,Word表格使用函数公式 加减乘除 求和,求积,求平均值的图文教程...

    腾讯视频/爱奇艺/优酷/外卖 充值4折起 不是所有的表格都会用到Excel来制作的,一些简单的表格,我们都会用Word文档来制作,但是缺陷也是非常的明显,Word毕竟没有Excel处理数据那样强大的功 ...

  4. 计算机表格求和求平均值公式,EXCEL怎么求和,还有求平均值?,excle求和平均

    EXCEL中如何求和.求平均值? 你这个是经过时间,而Excel时间格1天24小时的时间,所能使用Excel中的时关的函数直接计算,举个简单例子,你将这些时间加起来如果超过24小时,Excel会除以 ...

  5. 加减乘除 求和,求积,求平均值样样都行

    不是所有的表格都会用到Excel来制作的,一些简单的表格,我们都会用Word文档来制作,但是缺陷也是非常的明显,Word毕竟没有Excel处理数据那样强大的功能.不过在运用一些简单的公式求和.平均值. ...

  6. c语言用average函数计算平均成绩,在excel中-Excel中,求平均值用Average函数;它可分用快捷键求平均值...

    在 Excel 中,求平均值用Average函数:它可分用快捷键求平均值.自动求平均值和输入公式求平均值,其中用快捷键求平均值速度最快,并且三种方法都可以对行列.任意单元格.指定区域甚至整个表格求平均 ...

  7. 计算机考试计算学生均值,2018年职称计算机考试Excel考点:求平均值函数AVERAGE...

    [摘要]环球网校分享的"2018年职称计算机考试Excel考点:求平均值函数AVERAGE"复习资料,供备考2018年职称计算机考试考生有帮助,更多资料敬请关注环球网校职称计算机考 ...

  8. 看完微软大神写的求平均值代码,我意识到自己还是too young了

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 博雯 发自 凹非寺 量子位 | 公众号 QbitAI 取整求个无符号整数的平均值,居然 ...

  9. 微软大神“玩”出新花样,求平均值代码还能这样写?

    编译 | 马超       责编 | 苏宓 出品 | CSDN(ID:CSDNnews) 近日,微软神级人物Raymond Chen在个人博客上,发布了一篇关于<如何计算平均值>的博文.这 ...

最新文章

  1. java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法
  2. 006.递归和分治思想
  3. Eclipse 搭建struts2 spring3 hibernate3环境实战 待完善
  4. mysql navicat 设计表_Navicat for MySQL 如何设计报表版面
  5. 软件工程第三次作业-功能测试
  6. FreeRTOS内核详解(1) —— 临界段保护原理
  7. Oracle监听的静态注册和动态注册
  8. Unity3d高频率面试题目(选择题)
  9. SQL数据库语言基础之SqlServer数据表的六大约束(主键、外键、检查、非空、唯一性、默认值约束)的创建
  10. 南邮ctf mysql_南邮ctf知识点汇总 - Crypto篇
  11. PyTorch入门(二)从零开始搭建一个神经网络
  12. 表情识别(一)——使用Dlib、opencv和Python识别面部特征
  13. CS217 1_Intro Hardware Accelerators for Machine Learning
  14. HS8145X6华为界面telnet23账号密码重置
  15. 解决找不到 C 盘中的 AppData 文件夹的问题
  16. 文字转语音文件现成工具
  17. Excel如何批量生成条形码?
  18. Java工程师是做什么的 岗位职责都有哪些
  19. C语言射击类打飞机小游戏
  20. Prezi - the best presentation tool

热门文章

  1. JS 删除 cookie
  2. 强行杀windows服务
  3. Vue.js(17)之 插槽
  4. JDK环境变量设置(linux)
  5. react脚手架快速创建react项目
  6. 2017-2018-1 20155327 《信息安全系统设计基础》第十一周学习总结
  7. 【DP】[NOI2013]书法家
  8. 输入列画表格 在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。 有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)...
  9. error LNK2001: unresolved external symbol QtCored.lib using staic Qt lib
  10. [导入]c#中的关于string的转换的问题