[NOIP2012 提高组] 借教室

题意:给定序列,支持区间减少操作,当序列中有负数时停止,输出次数。

#include<bits/stdc++.h>
using namespace std;
int t[4000010];
int N,n,m;
void build(int n)
{for(N=1;N<=n+1;N<<=1);memset(t,0,sizeof(int)*(N+N));for(int i=N+1;i<=N+n;i++)cin>>t[i];int A;for(int i=N-1;i>=1;i--){A=min(t[i+i],t[i+i+1]);t[i+i]-=A;t[i+i+1]-=A;t[i]+=A;}
}
int ask(int l,int r)
{int lmin=0,rmin=0,ans=0;for(l=l+N,r=r+N;l^r^1;l>>=1,r>>=1){lmin+=t[l];rmin+=t[r];if(~l&1)lmin=min(lmin,t[l^1]);if(r&1)rmin=min(rmin,t[r^1]);}ans=min(lmin,rmin);//for(l>>=1;l>=1;l>>=1)ans+=t[l];while(l>1)ans+=t[l>>=1];return ans;
}
void change(int l,int r,int x)
{int A;for(l=l+N-1,r=r+N+1;l^r^1;l>>=1,r>>=1){if(~l&1)t[l^1]+=x;if(r&1)t[r^1]+=x;A=min(t[l],t[l^1]);t[l]-=A;t[l^1]-=A;t[l>>1]+=A;A=min(t[r],t[r^1]);t[r]-=A;t[r^1]-=A;t[r>>1]+=A;}for(;l>1;l>>=1){A=min(t[l],t[l^1]);t[l]-=A;t[l^1]-=A;t[l>>1]+=A;}
}
int main()
{bool flag=0;scanf("%d%d",&n,&m);build(n);for(int i=1;i<=m;i++){int d,s,e;cin>>d>>s>>e;change(s,e,-d);if(ask(1,n)<0){cout<<"-1"<<endl<<i<<endl;return 0;}}cout<<"0"<<endl;return 0;
}

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

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

相关文章

算法训练营day31,贪心算法5

package main import ( "fmt" "sort" ) //435. 无重叠区间 func eraseOverlapIntervals(intervals [][]int) int { if len(intervals) 0 { return 0 } count : 0 //移除数量 //按第一位从小到大排序 sort.Slice(intervals, func(i, j int) bool { retu…

龟兔赛跑算法

一、题目 给定一个长度为 n1 的数组nums&#xff0c;数组中所有的数均在 1∼n1 的范围内&#xff0c;其中 n≥1。 请找出数组中任意一个重复的数。 样例 给定 nums [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。 二、解析 解决这个问题的一种有效方法是使用快慢指针&#xf…

SpringBoot图书管理系统

介绍 图书管理系统助力于图书馆中图书的管理&#xff0c;功能包含图书管理、借阅、归还&#xff0c;三块业务的解决方案&#xff0c;可对图书进行查询、查询图书剩余数量及借阅记录和状态、监控数量不足的图书。 使用技术 SpringBootMyBatisThymeleafMySQL 项目结构 业务流…

五种多目标优化算法(MOAHA、MOGWO、NSWOA、MOPSO、NSGA2)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOAHA 1.2MOGWO 1.3NSWOA 1.4MOPSO 1.5NSGA2 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数&#xff08;zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3&#xff09;&#xff…

体验一下UE5.3的Skeletal Editor

UE5.3中增加了蒙皮网格骨架编辑工具&#xff0c;用户无需导出Fbx就可以直接编辑蒙皮网格&#xff0c;支持修改绑定姿势的骨骼位置、修改蒙皮权重、对已蒙皮多边形进行编辑以及对蒙皮网格减免等操作&#xff0c;就来体验一下。 1.加载插件 要使用Skeletal Editor功能&#xff…

SpringBoot中使用PageHelper插件实现Mybatis分页

场景 SpringBoot中整合Mybatis时一般添加的依赖为 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.1</version></dependency> 如果要实现分页查…

PostgreSQL里实现计算多个数字的排列组合

在进行排列组合的时候&#xff0c;每一次需要知道是否有重复的值&#xff0c;并过滤出已经排列过的值。这个可以创建支持可变参数的函数来实现。下边的函数用到了聚合判断&#xff0c;并且可变参数使用variadic标记的数组。 postgres<16.1>(ConnAs[postgres]:PID[188277…

基于shp数据制作3DTiles建筑白膜

经纬管网建模系统MagicPipe3D&#xff0c;本地离线参数化构建地下管网、建筑三维模型&#xff0c;输出标准3DTiles服务、Obj模型等格式&#xff0c;支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析。欢迎下载试用&#xff1a;http://www.magic3d.…

抖音小店怎么做?不会做抖音小店怎么办?

大家好&#xff0c;我是电商花花。 如果想做抖音小店但是又不会做抖音小店的朋友可要看过来&#xff0c;现在抖音小店无货源发展的这么好&#xff0c;市场这么大&#xff0c;如果还不会做抖店的可要看过来了。 问什么别人一做就会爆单&#xff0c;就能找到商家&#xff0c;而…

二百二十四、Kettle——曲线实现从Hive插入更新到ClickHouse(分区字段是month或year)

一、目的 对于以month、year为分区字段的数据&#xff0c;不是像day字段分区那样每天增量插入更新即可&#xff0c;而是要以部分字段查询、部分字段更新&#xff0c;但是ClickHouse数据库并不适合更新操作&#xff0c;直接使用Kettle的插入更新控件会导致问题&#xff0c;必须…

基于python+django+vue.js开发的社区养老管理系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 功能包括&#xff1a;老人管理、护工管理、亲属管理、病史管理、房间管理、活动管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.co…

Java项目,营销抽奖系统设计实现

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 项目&#xff1a;https://gaga.plus 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 大家好&#xff0c;我是技术UP主&#xff0c;小傅哥。 经过这个假期的嘎嘎卷&#x1f9e8;…

软件实际应用实例分享,门诊电子处方模板制作教程,中西医诊所病历开单系统教程

软件实际应用实例分享&#xff0c;门诊电子处方模板制作教程&#xff0c;中西医诊所病历开单系统教程 一、前言 以下软件教程以 佳易王诊所电子处方软件V17.3为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、在开电子处方的时候&#xff0c…

算法-二叉树相关

判断二叉树是否是完全二叉树 思路&#xff1a;层次遍历&#xff0c;如果之前某个节点叶子节点为空&#xff0c;队列后续的所有节点的左右节点都不能非空&#xff0c;并且如果节点左节点为null但是右节点不为null该二叉树一定不是满二叉树 public static boolean isCBT1(Node …

沁恒CH32V30X学习笔记07---多功能按键框架使用

多功能按键框架使用 参考开源框架: GitHub - 0x1abin/MultiButton: Button driver for embedded system 框架使用说明: ch32gpio基本驱动 https://blog.csdn.net/u010261063/article/details/136157718 MultiButton 简介 MultiButton 是一个小巧简单易用的事件驱动型按…

python数据类型-字典

1 字典定义 1&#xff09;字典中的元素时一个个键值对&#xff0c;键和值之间用冒号&#xff1a;分隔&#xff0c;键值对元素之间用逗号分隔&#xff0c;格式&#xff1a;d {key1 : value1, key2 : value2 } 2&#xff09;字典中的键是唯一的&#xff0c;值可以重复 注**&…

Java 中是否存在内存溢出、内存泄漏?如何解决?举例说明(企业真题)

Java 中是否存在内存溢出、内存泄漏&#xff1f;如何解决&#xff1f;举例说明 解答&#xff1a; 存在&#xff01; 在程序执行的过程中&#xff0c;明明这是不再使用的内存空间了&#xff0c;但是jvm通过相关的算法判定以后不认为这是垃圾&#xff0c;那么就构成了内存泄漏…

相机图像质量研究(40)常见问题总结:显示器对成像的影响--画面泛白

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

阿里云幻兽帕鲁Windows 服务器怎么下载存档?

阿里云幻兽帕鲁Windows 服务器怎么下载存档&#xff1f;通过远程连接window服务器桌面的方式。 远程连接到阿里云的 Windows 服务器后&#xff0c;可以将压缩后的存档文件&#xff0c;拖动到 workbench\Download 目录后&#xff0c;就会触发浏览器的文件下载&#xff0c;然后将…

CSP-J 2023 复赛第2题:公路 ← 贪心算法

【题目来源】https://www.luogu.com.cn/problem/P9749https://www.acwing.com/problem/content/5311/【题目描述】 小苞准备开着车沿着公路自驾。 公路上一共有 n 个站点&#xff0c;编号为从 1 到 n。 其中站点 i 与站点 i1 的距离为 vi 公里。 公路上每个站点都可以加油&…