题目链接:https://vijos.org/p/1782

题意:一个区间1,n。m次操作,每次操作让l,r区间值减去d,当有任何一个值小于0就输出当前是第几个操作 这道题其实是没有什么难度的,是线段树中比较常规的题,我写它主要是为了更好的理解lazy标记,之前老师讲线段树我没听懂,所以都只有自己慢慢搞♂了,lazy标记就是与操作挂钩的一个值,根据题的意思不同lazy标记存的东西也会不同,针对这道题来说,lazy标记就是处理当前区间要减去多少天,如果lazy标记不为0说明目前这个区间的值还没有处理,是不正确的值,当lazy=0才表明当前区间的答案是正确的。

这道题我还是wa了很多次的,最后我把范围开大了才过了,当然我这个地方就有点不懂了,题目说的是10^6次方,所以线段树区间我就是(10^6+5)*4但是还是WA了两组,后来把这个区间开大了才AC,不知道原因是啥,如果有大佬知道还望指点一下

代码如下:

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<queue>
#define lson pos<<1
#define rson pos<<1|1
#define maxn 10000005//????
using namespace std; int n,m,minn[maxn<<],lazy[maxn<<],a[maxn]; void pushup(int pos)
{
minn[pos]=min(minn[lson],minn[rson]);
} void build(int l,int r,int pos)
{
if(l==r){
minn[pos]=a[l];return;
}
if(l>r)return;
int mid=(l+r)>>;
build(l,mid,lson);
build(mid+,r,rson);
pushup(pos);
} void pushdown(int pos)
{
minn[pos]-=lazy[pos];
lazy[lson]+=lazy[pos];
lazy[rson]+=lazy[pos];
lazy[pos]=;
} void modify(int l,int r,int pos,int al,int ar,int x)
{
if(lazy[pos])pushdown(pos);//如果pos区间还没有处理
if(al<=l&&r<=ar){
lazy[pos]=x;
pushdown(pos);
return;
}
if(al>r||ar<l)return;
int mid=(l+r)>>;
modify(l,mid,lson,al,ar,x);
modify(mid+,r,rson,al,ar,x);
pushup(pos);
} int main()
{
freopen("fuck.txt","r",stdin);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
build(,n,);
int d,x,y;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&d,&x,&y);
modify(,n,,x,y,d);
if(minn[]<){
printf("-1\n%d",i);
return ;
}
}
printf("");
}

[vijos1782]借教室<线段树>的更多相关文章

  1. vijos1782借教室

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

  2. vijos1782:借教室

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

  3. NOIP2012借教室[线段树|离线 差分 二分答案]

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

  4. [NOIP2012] 提高组 洛谷P1083 借教室

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

  5. 借教室(codevs 1217)

    1217 借教室 2012年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Descrip ...

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

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

  7. NOIP 2012 Day2T2 借教室题解

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

  8. 【NOIP2012】借教室

    因为本校OJ+1s所以用线段树水过了,不去syz的水库水这题还真不知道线段树过不了= = 原题: 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要 向学校申请借教室.教室的 ...

  9. NOIP 2012 T5 借教室 [洛谷P1083]

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

随机推荐

  1. 新大陆NB-IoT模块烧写详细过程

    NB-IOT 模块板设置 1. NB-IOT 模块板如下 2.将模块上红色开关 1. 2 向下拨, 3. 4 开关向上拨,如下 3.将黑色开关向左侧拨至 M3 芯片处,如下 4.将模块上启动/下载开关 ...

  2. 总结:利用asp.net core日志进行生产环境下的错误排查(asp.net core version 2.2,用IIS做服务器)

    概述 调试asp.net core程序时,在输出窗口中,在输出来源选择“调试”或“xxx-ASP.NET Core Web服务器”时,可以看到类似“info:Microsoft.AspNetCore. ...

  3. js原型继承题目

    var F = function(){}; Object.prototype.a = function(){}; Function.prototype.b = function(){}; var f ...

  4. 使用python3编写程序,生成10个随机数,每个元素的值介于1到100之间,并计算所有元素的和、平均值。

    代码如下: import random n = 0 sum = 0 while n < 10: num = random.randint(1, 100) sum = sum + num n += ...

  5. 2019-2020-3 20174318张致豪《网络对抗技术》Exp2 后门原理与实践

    Exp2 后门原理与实践 前期准备 一.实验目标与基础知识 1.1 实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell,任务计划启动 使用MSF  m ...

  6. 单片机基础——使用GPIO扫描检测按键

    1. 准备工作 硬件准备 开发板首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...

  7. 简述树,Trie,Avl,红黑树

    树的表示方法 在平时工作中通常有2种方式来表示树状结构,分别是孩子链表示法和父节点表示法.光说名词可能无法让人联系到实际场景中,但是写出代码之后大家一定就明白了. 孩子链表示法,即将树中的每个结点的孩 ...

  8. [转载]Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论

    Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论 转载至:https://www.sdnlab.com/17530.html 我们使用Linux作为服务器操作系统时,为了达到高并发处理 ...

  9. Upload-labs 测试笔记

    Upload-labs 测试笔记 By:Mirror王宇阳 2019年11月~ 文件上传解析学习 环境要求 若要自己亲自搭建环境,请按照以下配置环境,方可正常运行每个Pass. 配置 项 配置 描述 ...

  10. mysql5.7 ERROR 1045 (28000): Access denied for user解决方法

    https://blog.csdn.net/csy2961903/article/details/51345401  参考此文注意指名数据库mysql.user