题目传送门

借教室这个题有两种做法,差分+前缀和或者是线段树

线段树维护区间最小值,因为能不能借教室使用是由这几天中可用教室最少的一天决定的

其实这题是个很裸的线段树维护区间最小值,但有一点需要注意,区间最小值在进行加减修改时不能乘以区间长度

很简单,不论区间长度怎么样,你整个区间-x,最小值也减小了x,而不会是x*length,我因为这一点WA了两次(不知为啥,最近智商捉急)

之后就A掉了

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#define mid ((l+r)>>1)
#define ls (rt<<1)
#define rs (rt<<1|1)
#define min(a,b) (a<b?a:b)
#define pushup(rt) t[rt].data=min(t[ls].data,t[rs].data) using namespace std; const int N=1e6+5; struct segtree{
int left,right;
int data,tag;
inline int size(){return right-left+1;}
}t[(N<<2)]; int n,ans,f=true,tt;
int tot,s,cnt,v[N],m; inline void build(int rt,int l,int r){
t[rt].left=l;t[rt].right=r;t[rt].tag=0;
if(l==r){
t[rt].data=v[l];
return ;
}
build(ls,l,mid);build(rs,mid+1,r);
pushup(rt);return ;
} inline void pushdown(int rt){
if(t[rt].tag!=0){
t[ls].tag+=t[rt].tag;
t[rs].tag+=t[rt].tag;
t[ls].data+=t[rt].tag;
t[rs].data+=t[rt].tag;
t[rt].tag=0;
}
return ;
} inline void update(int rt,int num){
int l=t[rt].left,r=t[rt].right;
if(s<=l&&r<=tt){
if(t[rt].data>=tot){
t[rt].data-=tot;
t[rt].tag-=tot;
}else{
f=false;
ans=num;
}
return ;
}
if(!f) return ;
pushdown(rt);
if(s<=mid) update(ls,num);
if(tt>mid) update(rs,num);
pushup(rt);return ;
} int main(){
scanf("%d%d",&n,&m);
for(register int i=1;i<=n;++i) scanf("%d",&v[i]);
build(1,1,n);
for(register int i=1;i<=m;++i){
scanf("%d%d%d",&tot,&s,&tt);
update(1,i);
}
if(f) puts("0");
else{
puts("-1");
printf("%d\n",ans);
}
return 0;
}

LuoGu P1083 借教室的更多相关文章

  1. luogu P1083 借教室 x

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

  2. Luogu P1083 借教室【二分答案/差分】By cellur925

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

  3. [NOIp2012] luogu P1083 借教室

    该*的英语,这么长还要背. 题目描述 你有 nnn 个数 ai{a_i}ai​,mmm 次操作,每次操作将 [l,r][l,r][l,r] 区间的每个数减去 ccc.要求任何时刻 ∀x∈[1,n]\f ...

  4. Luogu 1083 借教室(二分,差分)

    Luogu 1083 借教室(二分,差分) Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要 向学校申请借教室.教室的大小功能不同,借教室人的身份不 ...

  5. P1083 借教室(差分+二分)

    P1083 借教室 第一眼:线段树. 然鹅懒得写. 正解:差分+二分. 显然订单合法的上线可以二分 然后差分数组维护一下.没了. #include<iostream> #include&l ...

  6. 洛谷P1083 借教室

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

  7. 【题解】洛谷 P1083 借教室

    目录 题目 思路 \(Code\) 题目 P1083 借教室 思路 线段树.需要的操作为区间修改,区间查询.维护每个区间的最小值就好. \(Code\) #include<iostream> ...

  8. 洛谷 P1083 借教室 题解

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

  9. VIjos——V 1782 借教室 | | 洛谷——P1083 借教室

    https://vijos.org/p/1782|| https://www.luogu.org/problem/show?pid=1083 描述 在大学期间,经常需要租借教室.大到院系举办活动,小到 ...

随机推荐

  1. luogu 4377 Talent show 01分数规划+背包dp

    01分数规划+背包dp 将分式下面的部分向右边挪过去,通过二分答案验证, 注意二分答案中如果验证的mid是int那么l=mid+1,r=mid-1,double类型中r=mid,l=mid; 背包dp ...

  2. Access数据库SQL注入(Access SQL Injection)

    一.Microsoft Office Access数据库手工注入语句  1.参数后面加  ’ .and 1=1.and 1=2看返回状态判断是否存在注入点 2.参数后面加 and exists(sel ...

  3. luogu P3244 [HNOI2015]落忆枫音

    传送门 md这题和矩阵树定理没半毛钱关系qwq 首先先不考虑有环,一个\(DAG\)个外向树个数为\(\prod_{i=2}^{n}idg_i(\)就是\(indegree_i)\),因为外向树每个点 ...

  4. luogu P5112 FZOUTSY

    传送门 毒瘤出题人,卡我常数 如果后缀排序后将两两之间height\(\ge k\)的后缀放在一组,那么每次询问的答案就是\(\sum_{i} \binom{num[i]}{2}\)(num[i]是第 ...

  5. easyui 进阶之表单校验、自定义校验

    前言 easyui是一种基于jQuery的用户界面插件集合,它为创建现代化,互动,JavaScript应用程序,提供必要的功能,完美支持HTML5网页的完整框架,节省网页开发的时间和规模.非常的简单易 ...

  6. sql连接:inner join on, left join on, right join on使用详解

    点击打开原文 inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包 ...

  7. 将本地项目上传到git

    1.新建一个README.md的文件,并将项目名写入此文件(一般第三方git服务会在创建在创建项目的时候自动创建该文件,可以跳过这一步) echo "# Lee" >> ...

  8. Luogu P2490「JSOI2016」黑白棋

    我博弈基础好差.. Luogu P2490 题意 有一个长度为$ n$的棋盘,黑白相间的放$ k$个棋子,保证$ k$是偶数且最左边为白子 每次小$ A$可以移动不超过$ d$个白子,然后小$ B$可 ...

  9. Can not deserialize instance of xxx out of START_ARRAY token

    Json 反序列化异常 Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableEx ...

  10. Java开发环境配置(5)--Web 服务器--Tomcat--安装过程遇到的问题

    1.参考例子:--- 怎样安装配置tomcat 8_百度经验https://jingyan.baidu.com/article/ff42efa91132a0c19e220208.html 安装与配置T ...