D - Max GEQ Sum

input

3
4
-1 1 -1 2
5
-1 2 -3 2 -1
3
2 3 -1

output

YES
YES
NO

题目大意:给你一个数组a,让你任意一个字段均满足:
max(ai,ai+1,…,aj−1,aj)≥ai+ai+1+⋯+aj−1+aj

思路

任意两个正数之间的负数的绝对值一定要>=最小的正数,所以我们在遍历数组的时候只需要维护上一个正数的最大值是多少。我们定义la是上一个最大值,sum是这一区间的负数绝对值的和当a[i]大于零的时候我们可以令
la = max(la+a[i]-sum,a[i]);

进而可以O1维护上一个最大值。

完整代码:

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
#define pii pair<int, int>
#define x first
#define y second
using namespace std;
const int N = 2e5 + 10;
const int mod = 1e9 + 7;
int i, j, k, n, m, l, x, y, ans;
int a[N], b[N], c[N], d[N];
int jc[N * 2], md[N * 2];
double dis[N];
bool p[N], q[N];
map<int, vector<int>> hh;
signed main()
{
cin >> l;
while (l--)
{
cin >> n;
for (i = 1; i <= n; i++)
cin >> a[i];
int la = 0, sum = 0;
int t = 0;
for (i = 1; i <= n; i++)
{
if (a[i] > 0)
{
if (la)
{
if (sum < min(la, a[i]))
t = 1;
}
la = max(la+a[i]-sum,a[i]);
sum=0;
}
else
sum -= a[i];
}
if (!t)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}

CF#795 D - Max GEQ Sum O(n)做法的更多相关文章

  1. group by与avg(),max(),min(),sum()函数的关系

    数据库表: create table pay_report(     rdate varchar(8),     --日期     region_id varchar(4),    --地市      ...

  2. SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum

    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum avg() 函数 定义和用法 AVG 函数返回数值列的平均值.NULL ...

  3. 49-python基础-python3-列表-常用列表统计函数-max()-min()-sum()

    max() min() sum() 1-数字列表统计 实例: 2-字符串列表统计. 根据ASCII码大小统计字符串列表的min()和max(). 注意:sum()函数无法统计字符串列表. 实例:

  4. Linq查询操作之聚合操作(count,max,min,sum,average,aggregate,longcount)

    在Linq中有一些这样的操作,根据集合计算某一单一值,比如集合的最大值,最小值,平均值等等.Linq中包含7种操作,这7种操作被称作聚合操作. 1.Count操作,计算序列中元素的个数,或者计算满足一 ...

  5. sql-函数avg,count,max,min,sum

     常用函数 AVG (平均) COUNT (计数) MAX (最大值) MIN (最小值) SUM (总合) 运用函数的语法是: SELECT "函数名"("栏位名&qu ...

  6. Linq中max min sum avarage count的使用

    一.Max最大值 static void Main(string[] args) { //Max求最大值 ,,,,,,,,,}; //方法1 Linq语句+Linq方法 var result = (f ...

  7. MySQL之汇总数据(AVG,COUNT,MAX,MIN,SUM)

    table test Field Type Null Key Default Extra id int(11) NO PRI NULL auto_increment name char(50) NO ...

  8. MySQL之聚合数据(AVG,COUNT,MAX,MIN,SUM)

    1.首先我们需要了解下什么是聚合函数 聚合函数aggregation function又称为组函数. 认情况下 聚合函数会对当前所在表当做一个组进行统计. 2.聚合函数的特点 1.每个组函数接收一个参 ...

  9. (算法)Binary Tree Max Path Sum

    题目: Given a binary tree, find the maximum path sum. For this problem, a path is defined as any seque ...

  10. CF#67 75d Big Maximum Sum

    ~~~题面~~~ 题解: 观察到拼接后的数据范围过大,无法O(n)解决,但是大区间是由很多小区间组成,而小区间是固定的,不会变化,所以可以考虑预处理出每个小区间的信息,然后根据给定序列按顺序一步一步合 ...

随机推荐

  1. 微服务全链路跟踪:jaeger集成istio,并兼容uber-trace-id与b3 荐

    微服务全链路跟踪:grpc集成zipkin 微服务全链路跟踪:grpc集成jaeger 微服务全链路跟踪:springcloud集成jaeger 微服务全链路跟踪:jaeger集成istio,并兼容u ...

  2. mongodb 中嵌套数组的且查询

    如果在mongodb中存在如下数据 { audit:{ experts:[{expertId:"1",result:"success",......} {exp ...

  3. Go channel 介绍

    Go 语言(Golang)中的 chan 是通道(channel)的缩写,用于在不同的 goroutine 之间进行通信.通道允许你在 goroutine 之间传递数据,从而实现同步和共享内存.下面是 ...

  4. 【YashanDB数据库】YAS-02032 column type is incompatible with referenced column type

    [标题]错误码处理 [问题分类]外键约束创建报错 [关键字]YAS-02032 [问题描述]设置外键约束报错,数据元数据不正确. [问题原因分析]外键字段类型不支持,比如varchar2(64) ,指 ...

  5. ASP.NET Core – Minimal API

    介绍 Minimal API 是 .NET 6 才开始有的功能. 它是一个简化版本的 Web API. 我还没有认真的去学习它, 感觉它走的是 Node.js Express 的路线. 目前用它来写小 ...

  6. TypeScript – Get Started

    前言 我学 TypeScript 的时候是 Angular 2.0 beta 的年代... 现在 Angular 都快 14 了. 但由于已经有 1 年半没有写 Angular 和 TypeScrip ...

  7. CSS & JS Effect – FAQ Accordion & Slide Down

    效果 参考: Youtube – Responsive FAQ accordion dropdown | HTML and CSS Tutorial 几个难点 1. 如何 align left for ...

  8. Wpf使用NLog将日志输出到LogViewer

    1 LogViewer LogViewer是通过UDP传输的高性能实时log查看器. 具有一下特性: 通过UDP读取日志 通过文件导入日志 导出日志到一个文件中 排序.过滤(日志树,日志等级)和查找 ...

  9. 从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用

    说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...

  10. 第42天:WEB攻防-PHP应用&MYSQL架构&SQL注入&跨库查询&文件读写&权限操作 - 快捷方式

    接受的参数值未进行过滤直接带入SQL查询 MYSQL注入:(目的获取当前web权限) 1.判断常见四个信息(系统,用户,数据库名,版本) 2.根据四个信息去选择方案 root用户:先测试读写,后测试获 ...