题意:
有n天,m个请求。n天内每天的可用教室为a_ia​i​​个,m个请求是从l到r天租借t个教室。 如果某一天的教室分配无法满足,则输出当前的订单号。


思考:

一开始根本没想到这个东西怎么二分。。

瞄了一眼题解才发现自己太弱。。。

首先要找单调性,因为只有具有单调性质的东西才能二分判断可行解。

在对题目分析了之后,我们发现就只有 每天租借教室的数量、订单的数量。

所以只能对订单的数量二分,每次二分一个订单的最大值,判断是否可行。

可行则扩大,不可行则缩小。

感觉usaco的题目和NOIP的题目都比较有思维的难度,一般在于题目建模与转化,所以需要多加训练和思考!!!

#include <stdio.h>
#include <algorithm>
using namespace std;
typedef long long ll;const int Maxn = 1000005;int Min = 0x3f3f3f3f;
int Day,need;
int num[Maxn];
int Rent[Maxn],Start[Maxn],End[Maxn];
ll Sum[Maxn];bool Check(int m){for(int i=0;i<=Day;++i) Sum[i] = 0;for(int i=1;i<=m;++i){Sum[Start[i]]+=Rent[i];Sum[End[i]+1]-=Rent[i];}ll now = 0;for(int i=1;i<=Day;++i){now+=Sum[i];if(now > num[i]){Min = min(Min,m);return true;}}return false;
}int main(){scanf("%d%d",&Day,&need);for(int i=1;i<=Day;++i){scanf("%d",&num[i]);}for(int i=1;i<=need;++i){scanf("%d%d%d",&Rent[i],&Start[i],&End[i]);}if( !Check(need) ){printf("0\n");return 0;}else{int l = 1 , r = need+1;while( l < r){int m = (l+r)>>1;if( Check(m) ) r = m;else l = m + 1;}printf("-1\n%d\n",Min);}return 0;
}

转载于:https://www.cnblogs.com/OIerLYF/p/7792614.html

[二分][前缀和]洛谷 P1083 借教室相关推荐

  1. P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★

    P1083 借教室 标记永久化线段树 很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改 这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余 ...

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

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

  3. 借教室(洛谷-P1083)

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

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

    https://www.luogu.org/problem/P1083 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教 ...

  5. 二分答案——木材加工(洛谷 P2440)

    题目选自洛谷P2440 读完题目后应该有个大致思路,看得出来是二分查找的题. 首先我们输入 n 和 k 并且运用二分找到合适的尺寸,而l 必须要足够小,r 必须要足够的大.题中写道数组中的数最大不会超 ...

  6. 洛谷P5488 | FFT+生成函数+二项式定理

    前言 因为最近在学习生成函数和多项式有关的内容,很多这方面的东西也不是很懂,所以很多地方可能讲得不好或者是不清楚还请读者们见谅. 那么关于这道题呢,它是我前段时间刚学生成函数时见过的题目.当时由于是刚 ...

  7. 二分答案——数列分段 Section II(洛谷 P1182)

    题目选自洛谷P1182 本题解法:二分答案+贪心 思路:首先,分析题目,求最大值的最小化,直接联想到二分,So我们直接二分答案,关键是要怎么去高效的check,我们考虑一个贪心的思路,能加的就加上,不 ...

  8. 二分答案——yyy2015c01 的 U 盘(洛谷 P2370)

    题目选自洛谷P2370 两种解法,01背包+排序,或是直接二分即可 写了二分最后只有40的分...刚好过了给的四个样例 哭辽~想了半天不知道哪里错了 题目背景 在 2020 年的某一天,我们的 yyy ...

  9. 洛谷P4072 [SDOI2016]征途(带权二分,斜率优化)

    洛谷题目传送门 一开始肯定要把题目要求的式子给写出来 我们知道方差的公式\(s^2=\frac{\sum\limits_{i=1}^{m}(x_i-\overline x)^2}{m}\) 题目要乘\ ...

最新文章

  1. Python工具 | 9个用来爬取网络站点的 Python 库
  2. 大学计算机系一周上几节课,大学生晒课程表,一周45节课无双休,三个专业是满课重灾区...
  3. EditText / This text field does not specify an inputType or a hint
  4. nginx rtmp代码架构1 hook点总结
  5. InstallShild的研究,msde2000,.netframwork,ScriptProject与ScriiptMSIProject的区别
  6. 伏安特性曲线实验报告_电化学扩散层,Cottrell equation,取样电流伏安法
  7. 截取地址栏URL参数
  8. 4.1.2电路交换、报文交换与分组交换
  9. 本期课程已满,欢迎关注后续期次 | 临床基因组学数据分析实战助力解析Case,快速发表文章...
  10. 《Hadoop MapReduce实战手册》一1.10 使用MapReduce监控UI
  11. Wordvec_句子相似度
  12. leetcode 65. Valid Number
  13. 等保-机房日常巡检记录表
  14. zip命令 – 压缩文件
  15. NY--234 -- 吃土豆 [二维动态规划]
  16. .Net大局观(2).NET Core 2.0 特性介绍和使用指南
  17. 路由器单区域 OSPF 基本配置
  18. 腾讯云+CentOS 7.2+python:搭建微信公众号后台入门教程
  19. 剪辑视频的方法有哪些
  20. 解决win10下 git闪退的问题(或者使用git命令报错fatal: open /dev/null or dup failed)

热门文章

  1. php读取远程二进制文件,php 读取二进制文件
  2. 玩转springboot入门配置yml单元测试文件获取值
  3. 敏捷个人课后练习四主题:我想要什么?
  4. HTML结构化CSS网页布局入门指南
  5. HTTP1.0,HTTP1.1,HTTPS和HTTP2.0的区别
  6. 洛谷P1162 填涂颜色
  7. Linux操作命令(四)
  8. 自己手写一个Mybatis框架(简化)
  9. 如何获得阿里技术offer:从《阿里DBA面试题》体味阿里社会招聘
  10. 03-SpringMVC-获得用户请求数据