luoguP1083 借教室 题目

#include<cstdio>
#include<iostream>
#include<cmath>
#include<string>
#include<string>
#include<algorithm>
#define rg register
#define N 1000050
#define lc now<<1
#define rc (now<<1)+1
using namespace std; int n,m;
bool flag;
int a[N];
struct tree{
int l,r,minn,lazy;
}ljl[N<<]; inline int read()
{
int s=,m=;char ch=getchar();
while(ch!='-'&&(ch<''||ch>''))ch=getchar();
if(ch=='-')m=-,ch=getchar();
while(ch>=''&&ch<='')s=(s<<)+(s<<)+ch-'',ch=getchar();
return s*m;
} void build(int now,int ll,int rr)
{
if(ll==rr)
{
ljl[now].l=ljl[now].r=ll;
ljl[now].minn=a[ll];
}
else
{
int mid=(ll+rr)>>;
build(lc,ll,mid);
build(rc,mid+,rr);
ljl[now].l=ll;ljl[now].r=rr;
ljl[now].minn=min(ljl[lc].minn,ljl[rc].minn);
}
} void push_down(int now)
{
if(ljl[now].lazy!=)
{
ljl[lc].lazy+=ljl[now].lazy;
ljl[rc].lazy+=ljl[now].lazy;
ljl[lc].minn-=ljl[now].lazy;
ljl[rc].minn-=ljl[now].lazy;
ljl[now].lazy=;
}
} void xiugai(int now,int ll,int rr,int d)
{
push_down(now);
if(ljl[now].l==ll&&ljl[now].r==rr)
{
ljl[now].lazy+=d;
ljl[now].minn-=d;
// if(ljl[now].minn<0)flag=1;
}
else
{
int mid=(ljl[now].l+ljl[now].r)/;
if(rr<=mid)xiugai(*now,ll,rr,d);
if(ll>mid)xiugai(*now+,ll,rr,d);
if(ll<=mid&&rr>mid)
{
xiugai(*now,ll,mid,d);
xiugai(*now+,mid+,rr,d);
}
ljl[now].minn=min(ljl[lc].minn,ljl[rc].minn);
}
} int main()
{
n=read();m=read();
for(rg int i=;i<=n;++i)a[i]=read();
build(,,n);
for(rg int i=;i<=m;++i)
{
rg int num=read(),st=read(),et=read();
xiugai(,st,et,num);
if(ljl[].minn<)
{
printf("-1\n%d\n",i);
exit();
}
}
puts("");
return ;
}

luoguP1083 借教室(题解)(我用的线段树)的更多相关文章

  1. NOIp 2012 #2 借教室 Label:区间修改线段树

    题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...

  2. NOIP 2012 Day2T2 借教室题解

    NOIP 2012 Day2T2 借教室题解 题目传送门:http://codevs.cn/problem/1217/ 题目描述 Description 在大学期间,经常需要租借教室.大到院系举办活动 ...

  3. 洛谷P1083 借教室 题解

    题目 [NOIP2012 提高组] 借教室 题解 这道题是几周之前做到的一道题,本来不想讲的,因为这道题也是用到了二分答案的方法,这类题目之前已经发布过两篇题解了.但这道题还运用了差分数组这个思想,所 ...

  4. [NOIP2012提高]借教室 题解(二分答案+差分)

    [NOIP2012提高&洛谷P1083]借教室 Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室 ...

  5. noip借教室 题解

    题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...

  6. 洛谷P1083借教室题解

    题目 这个难度感觉并没有那么高,因为这个题暴力也好打,但是比较难想出正解,因为如果你不看标签是很难想到这个题竟然是二分,当然前缀和应该很好想,毕竟让你求的是在某段时间内借教室的和是否满足. 这样我们可 ...

  7. tyvj 2075 借教室 题解

    P2075 [NOIP2012T5]借教室 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 noip2012-tg 描述 在大学期间,经常需要租借教室.大到院 ...

  8. 洛谷 P1083 借教室 题解

    P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...

  9. [NOIP2012]借教室 题解

    题目大意: 有一个n个数的数列,m个操作,第i个操作使[li,ri]区间建di,问第几个操作使数列中出现负数. 思路: 暴力显然过不了,那么就可以优化了,不难想到线段树,显然需要良好的姿势,那么就差分 ...

随机推荐

  1. JVM(3) 之 内存分配与回收策略

    开发十年,就只剩下这套架构体系了! >>>   之前讲过虚拟机中的堆,他是整个内存模型中占用最大的一部分,而且不是连续的.当有需要分配内存的时候,一般有两个方法分配,指针碰撞和空闲列 ...

  2. BUUCTF--reverse3

    测试文件:https://buuoj.cn/files/aa4f6c7e8d5171d520b95420ee570e79/a9d22a0e-928d-4bb4-8525-e38c9481469e.ra ...

  3. 修改ps工具栏字体大小

     修改ps工具栏字体大小 先改电脑分辨率或者改首选项--界面---文字,退出后,重新打开,但你会发现问题还是没解决,我们接着往下  找到文件夹安装目录下的photoshops.exe启动文件(查找方法 ...

  4. c# UDP分包发送

    考虑到UDP的高速和其他协议的复杂性,做了一个依靠时间发送的分包组包重发的UDP库. https://github.com/jinyuttt/UDPTTL.git

  5. Java加密与解密的艺术 读书心得

    现在项目中加密与解密的方式很多,很早就想整理一下Java中加密与解密的方式,读完<<Java加密与解密的艺术>>一书.借此机会梳理一下这方面的知识点 一.基础普及 安全技术目标 ...

  6. python 子类继承父类__init__(转载)

    转载: http://www.jb51.net/article/100195.htm 前言 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法 ...

  7. FTP客户端遇到150连接超时错误的处理办法

    环境:阿里云ECS,win server 2012 R2 / FTP Server(FileZilla 0.9.41) 问题描述:账号连接正常,但无法列出目录,提示150连接超时. 解决过程: 1.关 ...

  8. spring-boot-shiro-jwt-redis实现登陆授权功能

    一.前言 在微服务中我们一般采用的是无状态登录,而传统的session方式,在前后端分离的微服务架构下,如继续使用则必将要解决跨域sessionId问题.集群session共享问题等等.这显然是费力不 ...

  9. AndroidStudio之Theme、colorPrimary、colorPrimaryDark、colorAccent详解

    今天就来看看在Androi5.0中常用的颜色属性. 我们可以先定义一个style,然后在这个style中设定每一个Activity或者整个App的颜色,最后在清单文件中来给某个Activity设置主题 ...

  10. C# 枚举的声名和使用

    namespace xxxxxx { public enum EnumTextHAlign { Left = , Center = , Right = } } using xxxxxx;