C. Least Prefix Sum codeforces每日一题
🚀前言 🚀
大家好啊,这里是幸麟
🧩 一名普通的大学牲,最近在学习算法
🧩每日一题的话难度的话是根据博主水平来找的
🧩所以可能难度比较低,以后会慢慢提高难度的
🧩此题标签:*1500 数据结构 贪心
🧩本文栏目:一起来打cf吧
期待各位的点赞+收藏+关注,订阅专栏,每天一起写一道cf吧
一起学习算法吧
往期链接:
B. Coloring—codeforces每日一题http://t.csdn.cn/eEkkb
N. Number Reduction—codeforces每日一题 http://t.csdn.cn/jCLEg
E. Easy Assembly—codeforces每日一道思维题2 http://t.csdn.cn/pNrCd
codeforces每日一题1-Absolute Sorting http://t.csdn.cn/mCL6Y
题目
题目链接:Problem - C - Codeforces
题目:
题目大意:
Baltic有一个数组a,里面的元素个数是n,因为他喜欢数字m(1<=m<=n<2e5+10),所以他希望a1+a2+a3.....+am<a1+a2....+ak(1<=k<=n)
为实现他的希望,他可以进行以下的操作(也可以不进行)
选中数组其中一个元素的下标i,令a[i]=-a[i];
请问他至少进行多少次操作才能实现a1+a2+a3.....+am<a1+a2....+ak(1<=k<=n)
输入:每个测试用例的第一行包含两个整数 n和m(1≤m≤n≤2⋅105) — Baltic数组a的大小和他最喜欢的数字。
第二行包含 n个整数
保证 n 的和
在所有测试用例中不超过 2⋅105
输出:每一个用例最小的操作数
往下面翻就是答案了(想继续思考的话,还是不要往下面翻了)
思路+答案
既然想要实现a1+a2+a3.....+am<a1+a2....+ak(1<=k<=n)
我们令sum[i]为a1+a2+a3.....+ai
假设,i<=m 此时我们令a[i+1]+a[i+2]...+a[m]为subsum(你可以理解为sum[m]-sum[i])
如果有subsum<=0,那么sum[m]<=sum[i]
如果对于任何一个i<m有subsum<=0,那么就有sum[m]<=sum[i](1<=i<=m)
那么要实现这一部分,我们就要维护这个subsum,使其永远<=0即可
那么只要每次出现subsum>0的情况,我们需要减去我们之前遍历过的最大的正数(因为操作数要最小,所以我们尽量减去最大的正数,这里我使用了优先队列)
那么经过如上操作我们就使用了最少的操作数完成了前半部分a1+a2+a3.....+am<a1+a2....+ak(1<=k<=m)
那么后半部分我们也同理,详情可以看一下代码,上面讲的可能有点抽象了
#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
using namespace std;
typedef long long ll;
const int N=2e5+10;ll a[N];
int main()
{int t;cin>>t;while(t--){priority_queue<ll> q1;priority_queue<ll> q2;int n,m;int ans=0;scanf("%d %d",&n,&m);for(int i=1;i<=n;i++){scanf("%lld",a+i);}if(n==1){cout<<0<<"\n";continue;}ll subsum=0;for(int i=m;i>1;i--){subsum=subsum+a[i];if(a[i]>0){q1.push(a[i]);}if(subsum>0){ans++;subsum=subsum-2*q1.top();q1.pop();}}ll addsum=0;for(int i=m+1;i<=n;i++){addsum+=a[i];if(a[i]<0){q2.push(-a[i]);}if(addsum<0){ans++;ll num=q2.top();addsum+=2*num;q2.pop();}}cout<<ans<<'\n';}return 0;
}
好了,今天的每日一题到此结束了,有些地方说的可能不太清楚,如果有疑惑欢迎在评论区留言
一起讨论一下,最近会继续写题目,但是不会更新这个系列了,等期末考结束再来吧
相关文章:
C. Least Prefix Sum codeforces每日一题
🚀前言 🚀 大家好啊,这里是幸麟 🧩 一名普通的大学牲,最近在学习算法 🧩每日一题的话难度的话是根据博主水平来找的 🧩所以可能难度比较低,以后会慢慢提高难度的 🧩此题标…...
ASEMI三相整流模块MDS100-16图片,MDS100-16尺寸
编辑-Z ASEMI三相整流模块MDS100-16参数: 型号:MDS100-16 最大重复峰值反向电压(VRRM):1600V 最大RMS电桥输入电压(VRMS):1700V 最大平均正向整流输出电流(IF&#…...
【第37天】斐波那契数列与爬楼梯 | 迭代的鼻祖,递推与记忆化
本文已收录于专栏🌸《Java入门一百例》🌸学习指引序、专栏前言一、递推与记忆化二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析5.原题链接三、【例题1】1、题目描述2.解题思路3、模板代码4、代码解析5、原题链接三、推荐专栏四、课后习题序…...
Map集合
Map集合 Map接口的简介 Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。 Map 没有继承 Collection 接口,…...
PyQt5编程扩展 3.2 资源文件的使用
目录 本例运行效果: 设计Qt窗体 建立项目 放一个Group Box 放三个Label 放一个Horizontal Slider 放两个Line Edit 层次结构 布局 放一个Group Box 放两个Label 放两个Line Edit 放一个Push Button 层次结构 布局 放一个frame 层次结构 布局 窗体…...
Linux系统之文件共享目录设置方法
Linux系统之文件共享目录设置方法一、本次实践目的二、检查本地系统环境1.检查系统版本2.检查系统内核三、创建相关用户及用户组1.创建共享目录2.创建测试用户账号3.创建用户组4.设置用户的属组5.查看admin和IT用户组成员6.查看所有用户信息四、共享目录权限设置1.设置/data/so…...
上海亚商投顾:三大指数均涨超1% 芯片板块集体大涨
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪三大指数今日低开高走,午后集体涨超1%,创业板指盘中涨超1.7%。芯片板块集体大涨,…...
Harbor私有仓库部署与管理
目录 前言 一、Harbor概述 二、Harbor 的特性 三、Harbor的构成 四、Harbor构建Docker私有仓库 1、环境配置 2、案例需求 3、部署Harbor服务 3.1、部署docker compose服务 3.2 下载或上传Harbor安装程序 3.3、启动Harbor 3.4、查看Harbor启动镜像 4、物理机访问se…...
互联网架构之 “高可用” 详解
一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 如果系统每运行…...
分布式高级篇4 —— 商城业务(2)
一、订单服务1、订单基本概念2、订单基本构成3、订单状态4、订单流程5、配置拦截器拦截订单请求6、订单确认页模型抽取7、订单确认页vo封装8、Feign 远程调用请求头丢失问题\*\*\*\*\* 惨痛教训9、Feign 异步调用请求头丢失问题10、查看库存状态11、模拟计算运费12、接口幂等性…...
二分查找基本原理
二分查找基本原理1.二分查找1.1 基本概念1.2 二分查找查找步骤1.2.1 中间索引不能整除,取整数作为中间索引1.2.2 索引不能整除,整数1作为中间索引1.3 二分查找大O记法表示2. 二分查找代码实现1.二分查找 1.1 基本概念 二分法(折半查找)是一…...
【Python实战案例】Python3网络爬虫:“可惜你不看火影,也不明白这个视频的分量......”m3u8视频下载,那些事儿~
前言 哈喽!上午好嘞,各位小可爱们!有没有等着急了呀~ 由于最近一直在学习新的内容,所以耽搁了一下下,抱歉.jpg 双手合十。 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移…...
UE4:使用样条生成随机路径,并使物体沿着路径行走
一、关于样条的相关知识 参考自:样条函数 - 馒头and花卷 - 博客园 三次样条(cubic spline)插值 - 知乎 B-Spline(三)样条曲线的性质 - Fun With GeometryFun With Geometry 个人理解的也不是非常深,但是大概要知道的就是样条具…...
计算机组成原理(判断题)
计算机控制器是根据事先编好的程序,根据其指令来进行控制只会每一步骤的操作; 面向主存的双总线结构计算机系统,因在CPU与主存之间增加了一组存储器总线,由于通过存储器总线访存,提高了CPU的访存速度,也减轻…...
error: failed to push some refs to ... 就这篇,一定帮你解决
目录 一、问题产生原因 二、解决办法 三、如果还是出问题,怎么办?(必杀) 一、问题产生原因 当你直接在github上在线修改了代码,或者是直接向某个库中添加文件,但是没有对本地库同步,接着你想…...
DAMA数据管理知识体系指南之数据仓库和商务智能管理
第9章 数据仓库和商务智能管理 9.1简介 数据仓库(Data Warehouse,DW)由两个主要部分构成:首先是一个整合的决策支持数据库,其次是用于收集、清洗、转换、存储来自于各种操作型数据源和外部数据源数据的相关软件程序。两者结合以支持历史的、…...
PHP的五种常见设计模式
工厂模式 最初在设计模式 一书中,许多设计模式都鼓励使用松散耦合。要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程。在更改一个代码片段时,就会发生问题,系统其他部分 —— 您曾认为完全不相关的部分中也有…...
教你搞懂线段树,从基础到提高
秋名山码民的主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 🙏作者水平有限,如发现错误,还请私信或者评论区留言! 目录前言线段树逻辑概念线段树的俩个重要用处代码实现线段树题目巩固最后…...
C语言进阶——自定义类型:结构体
🌇个人主页:_麦麦_ 📚今日名言:生活不可能像你想象的那么好,也不会像你想象的那么糟。——莫泊桑《羊脂球》 目录 一、前言 二、正文 1结构体 1.1结构体的基础知识 1.2结构的声明 1.3特殊的声明 1.4结构体变量的…...
SpringSecurity学习笔记01
目录 一、课程介绍 二、框架概述 三、入门案例 四、基本原理(过滤器链) 五、基本原理(过滤器加载过程) 六、基本原理(两个重要的接口) 七、web权限方案-用户认证(设置用户名密码上) 八、…...
Python语言零基础入门教程(十一)
Python 列表(List) 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 序列都可以…...
现货白银基础知识
任何活动,任何项目,任何工作都离不开基础知识,这是肯定的。万丈高楼平地起,要想要简称百层高楼,首先得把低级打好!现货白银投资也是一样的道理,现在我们就来一起聊聊现货白银基础知识的问题&…...
数据库原理及应用基础知识点
数据库原理基础知识点大全数据库原理及应用1、数据库系统概述1.1 基本概念1.2 数据模型1.3 数据库系统的结构2、实体 -- 联系模型2.1 基本概念2.2 实体-联系图2.3 弱实体集3、关系数据模型3.1 关系数据库的结构3.2 从ER模型到关系模型3.3 关系操作、完整性约束、关系代数4、关系…...
【数据结构】栈(stack)
写在前面本篇文章开始讲解栈的有关知识,其实把顺序表和链表学好,那么这一章便不在话下,栈实际上就是顺序表或链表的一些特殊情况。用顺序表实现的栈叫做顺序栈用链表实现的栈叫做链栈文章的内容分为几个部分,希望读者能快速了解文…...
初识shell
文章目录一、shell基本知识1.1为什么学习和使用Shell编程1.2 什么是Shell1.2.1 shell的起源1.2.2 shell的功能1.3 shell的分类1.4 作为程序设计的语言——shell1.5 如何学好shell1.6 shell脚本的基本元素1.7 shell脚本编写规范1.8shell脚本的执行方式1.9 执行脚本的方法1.10 sh…...
程序员如何编写好开发技术文档 如何编写优质的API文档工作
编写技术文档,是令众多开发者望而生畏的任务之一。它本身是一件费时费力才能做好的工作。可是大多数时候,人们却总是想抄抄捷径,这样做的结果往往非常令人遗憾的,因为优质的技术文档是决定你的项目是否引人关注的重要因素。无论开…...
二级C语言操作例题(四十)
一、程序填空题 在此程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若s所指字符串”baacda”,中c的字符为…...
vue-router 源码解析(二)-创建路由匹配对象
文章目录基本使用导语createRouterMatcher 创建匹配路由记录addRoute 递归添加matchercreateRouteRecordMatcher 创建matchertokenizePath 解析pathtokensToParser 记录打分insertMatcher 将matcher排序总结基本使用 const routes [{path:"/",component: Demo2,nam…...
分布式新闻项目实战 - 10.Long类型精度丢失问题
怒发冲冠,凭阑处、潇潇雨歇。抬望眼,仰天长啸,壮怀激烈。三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。 靖康耻,犹未雪。臣子恨,何时灭。驾长车,踏破贺兰山缺。壮志饥…...
如何将本地jar包安装到maven仓库
mvn install:install-file:主要是将本地自定义jar安装到maven仓库,然后在pom中可以直接通过dependency的方式来引用。 此命令有如参数: 命令说明-DgroupId自定义groupId设置groupId 名-DartifactId自定义artifactId设置该包artifactId名-Dversion自定义…...
品牌网站建设/谷歌推广哪家公司好
接上一章 ASDM访问防火墙 ASA 防火墙访问控制的配置 关于配置一条全通的 global 策略 在 Configuration > Firewall > Access Rules 里面。添加一条全通的 global 策略,添加后发现居然ping不通。 解决方法如下: 1.检查 Device Setup–Interfaces里…...
天安节能科技园公司做网站/最新实时新闻
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新…...
网站一年的 运营费用/百度注册公司地址
var tiles L.tileLayer(http://{s}.tile.osm.org/{z}/{x}/{y}.png, {attribution: © <a href"http://osm.org/copyright">OpenStreetMap</a> contributors, }).addTo(map);...
搭建外文网站/html+css网页制作成品
最近在逛论坛发现很多小伙伴分享的接口测试框架中都增加了日志模块,想想也对毕竟log是最基本的东西,用于存储每条case的request和response。其中logging模块是用的最多的,老实说这个模块对我来说刚开始还是挺难用的,看的很多遍也算…...
连接国外网站做端口映射/百度的人工客服
Biotin-PEG-NH2 生物素-聚乙二醇-氨基 英文名称:Biotin-PEG-Amine 中文名称:生物素-聚乙二醇-氨基 外观: 白色/灰白色液体、半固体或固体,取决于分子量。 溶剂:水,氯仿,DMSO,二氯甲烷等常规…...
线上报名小程序怎么做/湖南seo优化价格
https://blog.csdn.net/bazhidao0031/article/details/81450815 转载于:https://www.cnblogs.com/guochen/p/10340837.html...