【NOIP2012提高组】借教室
90分暴力解法:
用线段树,初始值为该天的教室数,每个人来申请的时候在这段区间减去借走的数,然后查询最小值是否小于0,是就输出-1,否则继续。
(其实在vijos是可以直接A的,他们的评测机太快了)
#include <iostream>
#define maxn 1000005
using namespace std;
void scan(int &x)
{
char c;
bool flag = false;
while (!isdigit(c = getchar()))
{
if (c == '-')
flag = true;
}
x = ;
do
x = x * + c - '';
while (isdigit(c = getchar()));
if (flag)
x = -x;
}
int n, m, val[maxn];
namespace seg
{
struct node
{
int val, mark, minimum;
} nds[maxn * ];
void init(int l = , int r = n, int p = )
{
if (l == r)
{
nds[p].minimum = nds[p].val = val[l];
}
else
{
int mid = (l + r) / ;
init(l, mid, p * );
init(mid + , r, p * + );
nds[p].minimum = min(nds[p * ].minimum, nds[p * + ].minimum);
}
}
void add(int l, int r, int val, int p = , int ll = , int rr = n)
{
if (l == ll && r == rr)
{
nds[p].mark += val;
nds[p].minimum += val;
}
else
{
int mid = (ll + rr) / ;
if (l <= mid)
add(l, min(r, mid), val, p * , ll, mid);
if (mid + <= r)
add(max(l, mid + ), r, val, p * + , mid + , rr);
nds[p].minimum = min(nds[p * ].minimum, nds[p * + ].minimum) + nds[p].mark;
}
}
int query(int l, int r, int p = , int ll = , int rr = n)
{
if (l == ll && r == rr)
{
return nds[p].minimum;
}
else
{
int mid = (ll + rr) / ;
int ans = 0x7fffffff;
if (l <= mid)
ans = min(ans, query(l, min(r, mid), p * , ll, mid));
if (mid + <= r)
ans = min(ans, query(max(l, mid + ), r, p * + , mid + , rr));
return ans + nds[p].mark;
}
}
}
int main()
{
ios::sync_with_stdio(false);
scan(n);
scan(m);
for (int i = ; i <= n; i++)
scan(val[i]);
seg::init(,n,);
int d, s, t;
for (int i = ; i <= m; i++)
{
scan(d);
scan(s);
scan(t);
seg::add(s, t, -d);
if (seg::query(s, t) < )
{
cout << - << endl
<< i;
return ;
}
}
cout << ;
return ;
}
【NOIP2012提高组】借教室的更多相关文章
- [NOIp2012提高组]借教室
OJ题号:洛谷1083 思路:ZKW线段树 #include<cstdio> #include<cctype> #include<algorithm> inline ...
- 【分块】【常数优化】【Orz faebdc】洛谷 P1083 NOIP2012提高组 借教室
分块90分. By AutSky_JadeK [重点在下面] #include<cstdio> #include<cmath> using namespace std; #de ...
- 刷题总结——疫情控制(NOIP2012提高组)
题目: 题目背景 NOIP2012 提高组 DAY2 试题. 题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都,也是树中的根节点. H 国的首都 ...
- GZOJ 1361. 国王游戏【NOIP2012提高组DAY1】
国王游戏[NOIP2012提高组DAY1] Time Limit:1000MS Memory Limit:128000K Description 国王游戏(game.cpp/c/pas) [问题描述] ...
- [NOIP2012] 提高组 洛谷P1083 借教室
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
- 洛谷P1083 [NOIP2012提高组Day2T2]借教室
P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...
- NOIP2012提高组 Day 2 Problem 2 借教室
原题 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我 ...
- NOIP2012 D2 T2借教室
先上题目 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息 ...
- [NOIP2012] 提高组 洛谷P1081 开车旅行
题目描述 小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的 城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为 Hi,城市 ...
- 【未完成0.0】Noip2012提高组day2 解题报告
第一次写一套题的解题报告,感觉会比较长.(更新中Loading....):) 题目: 第一题:同余方程 描述 求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解. 格式 输入格式 输入只有一 ...
随机推荐
- Andrew 机器学习课程笔记
Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...
- 1031: [JSOI2007]字符加密Cipher
1031: [JSOI2007]字符加密Cipher Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 7338 Solved: 3182[Submit ...
- maximum shortest distance
maximum shortest distance Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- Visual formatting model 可视化格式模型
在可视化格式模型里,每个元素都是由一个或者多个盒子组成,这些盒子的布局由下面规则控制: box dimensions and type.(块元素和行内元素) positioning scheme (n ...
- 阿里云CentOS搭建系统
1.在阿里云网站上购买申请服务器. 2.通过Xshell连接服务器,并用root账户登入. 3.配置java开发环境:(也可以使用阿里云一键部署,自动配置并部署服务器) 一.安装jdk 1.查看Lin ...
- eclipse使用jrebel
注:以下都是网上收集整理的,可能不全,仅限于学习和研究使用. JavaRebel是一个工具,主要是用于热加载,比如说在Tomcat之类的应用服务器中,更新了class或者某些资源文件,使用了JRebe ...
- 什么是Node.js?带你初识Node
什么是Node.js Nodejs是一个基于Chrome v8引擎的JavaScript运行环境 Node.js使用了一个事件驱动,非阻塞式I/O的模型,使其轻量又高效. Node.js 的包管理器 ...
- springboot之banner
1 在Main里面关闭 @SpringBootApplication@MapperScan("org.sselab.mapper")public class Application ...
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十三节--RBAC模式及ABP权限管理(附送福利)
ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...
- 说说css中pt、px、em、rem都扮演了什么角色
前段时间,终于仔仔细细的把pt.px.em.rem了解了一遍,简单整理了一下做个记录. pt.px.em.rem都是什么 pt单位名称为点(Point),绝对长度单位.现在网页中出现得很少甚至不出现, ...