洛谷P1083 借教室 NOIP2012D2T2 线段树
正解:线段树
解题报告:
。。。真的不难啊只是开了这个坑就填下?
就是先读入每天的教室数建个线段树然后每次读入就update一下,线段树存的就这一段的最小值啊,然后如果有次更新完之后tr[1]小于0了说明不行了就输出然后return 0就行了?
实在是不难的,不想说了
放个代码就结束!
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(ll i=x;i<=y;i++)
ll n,m,mn[],a[],add[];
ll read()
{
;
;
'))ch=getchar();
;
)+(x<<)+(ch^'),ch=getchar();
return y?x:-x;
}
void build(ll rt,ll l,ll r)
{
if(l==r){mn[rt]=a[l];return;}
build(rt<<,l,(l+r)>>);build((rt<<)|,((l+r)>>)+,r);
mn[rt]=min(mn[rt<<],mn[(rt<<)|]);
return;
}
void pushdown(ll rt,ll l,ll r,ll mid)
{
add[rt<<]+=add[rt];add[(rt<<)|]+=add[rt];
mn[rt<<]+=add[rt];mn[(rt<<)|]+=add[rt];
add[rt]=;
return;
}
void update(ll rt,ll l,ll r,ll x,ll y,ll d)
{
if(l>=x && r<=y){add[rt]+=d,mn[rt]+=d;return;}
if(l>y || r<x)return;
ll mid=(l+r)>>;
)pushdown(rt,l,r,mid);
,l,mid,x,y,d);
)|,mid+,r,x,y,d);
mn[rt]=min(mn[rt<<],mn[(rt<<)|]);
return;
}
int main()
{
n=read();m=read();
rp(i,,n)a[i]=read();
build(,,n);
rp(i,,m)
{
ll d=read(),s=read(),t=read();update(,,n,s,t,-d);
]<);
}
printf("0\n");
;
}
洛谷P1083 借教室 NOIP2012D2T2 线段树的更多相关文章
- 【题解】洛谷 P1083 借教室
目录 题目 思路 \(Code\) 题目 P1083 借教室 思路 线段树.需要的操作为区间修改,区间查询.维护每个区间的最小值就好. \(Code\) #include<iostream> ...
- 洛谷P1083 借教室
P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...
- 洛谷 P1083 借教室 题解
P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...
- 洛谷 P1083 借教室【二分+差分/线段树】
二分mid,然后用1~mid的操作在差分序列上加减,最后把差分序列前缀和起来,看是否有有超过初始r值的 #include<iostream> #include<cstdio> ...
- 洛谷 P1083 借教室
传送门:Probem 1083 https://www.cnblogs.com/violet-acmer/p/9721160.html 一.暴力简述 首先我们不难看出,这道题--并不是一道多难的题,因 ...
- VIjos——V 1782 借教室 | | 洛谷——P1083 借教室
https://vijos.org/p/1782|| https://www.luogu.org/problem/show?pid=1083 描述 在大学期间,经常需要租借教室.大到院系举办活动,小到 ...
- NOIP2012 洛谷P1083 借教室
传送门 题意:有一些学(xian)生(quan)要借教室.在n天内,第i天学校有ri个教室.有m份订单,每份订单有三个数值dj,sj,tj,分别表示这个订单从第sj天开始到第tj天结束(包括端点),每 ...
- [NOIP2012] 提高组 洛谷P1083 借教室
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
- 洛谷P1083借教室题解
题目 这个难度感觉并没有那么高,因为这个题暴力也好打,但是比较难想出正解,因为如果你不看标签是很难想到这个题竟然是二分,当然前缀和应该很好想,毕竟让你求的是在某段时间内借教室的和是否满足. 这样我们可 ...
随机推荐
- hudson.AbortException: No files found in path D:\testproject\project2\testoutput\ with configured filemask: output.xml
错误描述: hudson.AbortException: No files found in path D:\testproject\project2\testoutput\ with configu ...
- MongoDB 备份恢复
备份: mongodump --host -u admin -p -o /tmp/alldb/ // 备份所有的库 mongodump --host -u admin -p -d mydb -o /t ...
- shell中判断是否是月末的方法
判断今天是不是一月的最后一天: 如果$(TZ=IST-32 date +%d)是1就是月末了.
- [Windows] 解决 COM Surrogate 错误提示
运行环境:Windows 8.1 (64bits) 异常描述:打开 "Windows 照片查看器",试图放大或缩小窗体,弹出 "COM Surrogate” 错误. 解决 ...
- Python内置性能分析模块timeit
timeit模块 timeit模块可以用来测试一小段Python代码的执行速度. class timeit.Timer(stmt='pass', setup='pass', timer=<tim ...
- easy-ui curd方法
/** _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : ...
- Kindeditor问题
1.初始的时候,拿到切图,kindeditor不知道为什么就是显示不出来,只出来个文本框一样的东西 原因:样式未加载,这个是因为美工那边样式重调了,而且新项目并没有将整个插件拷贝过来,而只是拿了kin ...
- MapReduce模型探究--总览
先从宏观上了解一下MR运行机制. 两个干活的: (1)jobtracher:管理和调度job (2)tasktracher: 执行job划分后的task client提交MR作业后,jobtrache ...
- Linux命令 free:查看内存使用情况
- ios-toolchain-based-on-clang-for-linux
https://github.com/tpoechtrager/cctools-port.git https://www.embtoolkit.org