B3799 [NICA #1] 序列

[B3799 NICA #1] 序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

发现两个操作跟顺序无关,最大子序列和就是所有正数之和。

对数组进行排序,之后求前缀和。用 n o w now now记录操作一加了多少。找到第一个 a i + n o w < 0 a_i + now \lt 0 ai+now<0的位置,求 ∑ k i a [ k ] \sum_k^ia[k] kia[k]即可。

如何快速求 i i i下标,可以用二分。

代码如下:

(自写二分)

#include <bits/stdc++.h>
using namespace std;
const int N = 2e6 + 21;
using LL = long long;
LL pre[N], a[N];
int main()
{int n,q; cin>>n>>q;for(int i = 1; i <= n; ++i) cin>>a[i];sort(a + 1, a + n + 1, greater<int>());for(int i = 1; i <= n; ++i) pre[i] = pre[i - 1] + a[i];LL now = 0;while(q--) {int op,k; cin>>op;if(op == 1) cin>>k, now += k;else {auto check = [&](int mid) -> bool {return a[mid] + now > 0;};int l = 1, r = n;while(l < r) {int mid = l + r + 1 >> 1;if(check(mid)) l = mid;else r = mid - 1;}LL ans = pre[l] + now * l;if(a[l] + now < 0) ans = 0;cout<<ans<<endl;}}
}

(用upper_bound

upper_bound函数用法:

如果是stl容器,则找到返回的是迭代器下标,否则返回v.end()

如果是普通数组,找到返回数组下标,否则返回0。

#include <bits/stdc++.h>
using namespace std;
const int N = 2e6 + 21;
using LL = long long;
LL pre[N], a[N];
int main()
{int n,q; cin>>n>>q;for(int i = 1; i <= n; ++i) cin>>a[i];sort(a + 1, a + n + 1);for(int i = 1; i <= n; ++i) pre[i] = pre[i - 1] + a[i];LL now = 0;while(q--) {int op,k; cin>>op;if(op == 1) cin>>k, now += k;else {LL pos = upper_bound(a + 1, a + n + 1, -now) - a - 1;LL sum = pre[n] - pre[pos] + now * (n - pos);cout<<sum<<endl;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Arthas案例】某应用依赖两个GAV-classifier不同的snakeyaml.jar,引起NoSuchMethodError

多个不同的GAV-classifier依赖冲突&#xff0c;引起NoSuchMethodError Maven依赖的三坐标体系GAV(G-groupId&#xff0c;A-artifactId&#xff0c;V-version) classifier通常用于区分从同一POM构建的具有不同内容的构件物&#xff08;artifact&#xff09;。它是可选的&#xf…

泰坦尼克号幸存者数据分析

泰坦尼克号幸存者数据分析 1、泰坦尼克号数据集2、数据集加载与概览3、泰坦尼克号幸存者数据分析4、哪些人可能成为幸存者&#xff1f; 1、泰坦尼克号数据集 泰坦尼克号的沉没是世界上最严重的海难事故之一&#xff0c;造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮…

​​​​​​​【人工智能】手写数字识别

手写数字识别 实验背景 数据集介绍 MNIST数据集包含了一系列的手写数字图像&#xff0c;包括0到9的数字。每张图像都是灰度图像&#xff0c;尺寸为28x28像素。数据集共包含60000张训练图像和10000张测试图像。 MNIST数据集的目标是通过训练一个模型&#xff0c;使其能够正确地识…

Spring Boot 集成 RabbitMQ(二)

什么是Spring Boot&#xff1a; Spring Boot是Spring Framework的简化版&#xff0c;其目标是使用尽可能少的配置来简化Spring应用的开发、部署和维护。它根据项目的依赖关系自动配置Spring环境&#xff0c;开箱即用。 什么是RabbitMQ&#xff1a; RabbitMQ是一种开源的、实…

彩虹聚合DNS管理系统v1.0全新发布

聚合DNS管理系统&#xff08;https://github.com/netcccyun/dnsmgr&#xff09;可以实现在一个网站内管理多个平台的域名解析&#xff0c;目前已支持的域名平台有&#xff1a;阿里云、腾讯云、华为云、西部数码、CloudFlare。本系统支持多用户&#xff0c;每个用户可分配不同的…

vscode+anaconda 环境python环境

环境说明&#xff1a; windows 10 vscodeanaconda anaconda 安装&#xff1a; 1、官网下载地址:Free Download | Anaconda 2、安装 接受协议&#xff0c;选择安装位置&#xff0c;一直next&#xff0c;到下面这一步&#xff0c;上面是将Anaconda 添加至环境变量&#xff0…

社恐!!!

社恐 1. 独自灿烂去吧&#xff0c;不要在乎任何人的眼光&#xff01; 链接: link 在人群中扭扭捏捏&#xff0c;总觉得别人关注自己 其实你看根本无人在意我&#xff0c;对于他们而言我只是他们日常生活中的一个配角。大家都关注着自己&#xff0c;根本不会有人分心来关注我…

linux使用supervisor部署springboot

supervisor 美&#xff1a;[suːpərvaɪzər ] n.监督人;主管人;指导者; Supervisor是一个进程控制系统工具&#xff0c;用于在Linux系统上管理和监控其他进程。它可以启动、停止、重启和监控应用程序或服务&#xff0c;并在其异常退出时自动重启它们。Supervisor通过提供一个…

spring 和spring boot的区别

Spring是一个开源的Java开发框架&#xff0c;旨在简化Java应用程序的开发。它提供了一个综合的编程和配置模型&#xff0c;用于构建各种类型的应用程序&#xff0c;从简单的命令行工具到复杂的企业级Web应用程序。 Spring Boot是Spring框架的一个扩展&#xff0c;旨在简化Spri…

使用阿里云试用Elasticsearch学习:2.2 深入搜索——全文搜索

我们已经介绍了搜索结构化数据的简单应用示例&#xff0c;现在来探寻 全文搜索&#xff08;full-text search&#xff09; &#xff1a;怎样在全文字段中搜索到最相关的文档。 全文搜索两个最重要的方面是&#xff1a; 相关性&#xff08;Relevance&#xff09; 它是评价查询…

idea开发 java web 配电室后台管理系统bootstrap框架web结构java编程计算机网页

一、源码特点 java 配电室后台管理系统是一套完善的完整信息系统&#xff0c;结合java web开发和bootstrap UI框架完成本系统 &#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主 要采用B/S模式开发。 前段主要技术 cs…

阿里 Arthas 工具使用

Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c;类加载信…

(delphi11最新学习资料) Object Pascal 学习笔记---第8章第6节(安全类型转换运算符)

8.6 安全类型转换运算符 ​ 正如我们之前所见&#xff0c;子类的语言类型兼容性规则允许你在期望祖先类的地方使用子类。如我所提到的&#xff0c;反向则不可能。 ​ 现在假设TDog类有一个Eat方法&#xff0c;而TAnimal类中不存在此方法。如果变量FMyAnimal引用了一个狗&…

苹果CMSV10整合dplayer播放器增加记忆+P2P播放+自动下一集功能插件详细保姆级教程

1.本站已打包&#xff0c;可以直接下载然后上传到你服务器的苹果CMS网站static/player目录下就可以了&#xff0c;下面是教程 wlm3u8.js代码&#xff1a; MacPlayer.Html <iframe border"0" src"mac<span class"wp_keywordlink"><a hre…

全国航空机场分布矢量数据/旅游景点poi/全国港口码头分布/地铁站分布/火车站分布/POI矢量数据

民用航空机场是指针对包括跑道型机场、表面直升机场、高架直升机场、船上直升机场、直升机水上平台、滑翔机场、水上机场、有人操纵气球施放场以及其他专供民用航空器起降的划定区域。民用航空机场分为通用航空机场和公共运输机场&#xff1b;不包括临时机场和专用机场。 根据中…

SSM项目实战——哈哈音乐(四)前台模块开发

1、项目准备 ①导入依赖和前端资源 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.x…

课时86:流程控制_函数基础_函数退出

2.1.2 函数退出 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 简介 我们可以将函数代码块&#xff0c;看成shell脚本内部的小型脚本&#xff0c;所以说函数代码块也会有执行状态返回值。对于函数来说&#xff0c;它通常支持两种种状态返回…

已解决java.lang.NegativeArraySizeException: 负数组大小异常的正确解决方法,亲测有效!!!

已解决java.lang.NegativeArraySizeException: 负数组大小异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 检查并修正硬编码值 调整计算逻辑 校验变量值 总结 博主v&#xff1a;XiaoMing_Jav…

解决element-plus table组件 fixed=“right“(left)浮动后横向滚动文字穿透的问题

BUG 版本&#xff1a;element-plus 2.6.1 浏览器&#xff1a;360极速浏览器22.1 (Chromium内核) 组件&#xff1a;el-table组件 问题&#xff1a;在头部/尾部浮动加上斑马条纹后&#xff0c;横向滚动存在文字穿透的问题。具体如图&#xff1a; 白色背景行的文字&#xff0c…

反转链表(leetcode 206)

迭代核心逻辑&#xff1a; 原链表的新的下一个结点&#xff0c;作为新反转链表的头结点 代码分析&#xff1a; 初始化prev为nullptr&#xff08;之后是作为反转后链表的最后一个结点&#xff09;&#xff0c; 遍历原链表时保存当前结点的下一个结点&#xff0c;将curr的nex…