[二分][前缀和]洛谷 P1083 借教室
题意:
有n天,m个请求。n天内每天的可用教室为a_iai个,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 借教室相关推荐
- P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★
P1083 借教室 标记永久化线段树 很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改 这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余 ...
- 洛谷P1083 [NOIP2012提高组Day2T2]借教室
P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...
- 借教室(洛谷-P1083)
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
- P1083 借教室(差分+二分)
https://www.luogu.org/problem/P1083 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教 ...
- 二分答案——木材加工(洛谷 P2440)
题目选自洛谷P2440 读完题目后应该有个大致思路,看得出来是二分查找的题. 首先我们输入 n 和 k 并且运用二分找到合适的尺寸,而l 必须要足够小,r 必须要足够的大.题中写道数组中的数最大不会超 ...
- 洛谷P5488 | FFT+生成函数+二项式定理
前言 因为最近在学习生成函数和多项式有关的内容,很多这方面的东西也不是很懂,所以很多地方可能讲得不好或者是不清楚还请读者们见谅. 那么关于这道题呢,它是我前段时间刚学生成函数时见过的题目.当时由于是刚 ...
- 二分答案——数列分段 Section II(洛谷 P1182)
题目选自洛谷P1182 本题解法:二分答案+贪心 思路:首先,分析题目,求最大值的最小化,直接联想到二分,So我们直接二分答案,关键是要怎么去高效的check,我们考虑一个贪心的思路,能加的就加上,不 ...
- 二分答案——yyy2015c01 的 U 盘(洛谷 P2370)
题目选自洛谷P2370 两种解法,01背包+排序,或是直接二分即可 写了二分最后只有40的分...刚好过了给的四个样例 哭辽~想了半天不知道哪里错了 题目背景 在 2020 年的某一天,我们的 yyy ...
- 洛谷P4072 [SDOI2016]征途(带权二分,斜率优化)
洛谷题目传送门 一开始肯定要把题目要求的式子给写出来 我们知道方差的公式\(s^2=\frac{\sum\limits_{i=1}^{m}(x_i-\overline x)^2}{m}\) 题目要乘\ ...
最新文章
- Python工具 | 9个用来爬取网络站点的 Python 库
- 大学计算机系一周上几节课,大学生晒课程表,一周45节课无双休,三个专业是满课重灾区...
- EditText / This text field does not specify an inputType or a hint
- nginx rtmp代码架构1 hook点总结
- InstallShild的研究,msde2000,.netframwork,ScriptProject与ScriiptMSIProject的区别
- 伏安特性曲线实验报告_电化学扩散层,Cottrell equation,取样电流伏安法
- 截取地址栏URL参数
- 4.1.2电路交换、报文交换与分组交换
- 本期课程已满,欢迎关注后续期次 | 临床基因组学数据分析实战助力解析Case,快速发表文章...
- 《Hadoop MapReduce实战手册》一1.10 使用MapReduce监控UI
- Wordvec_句子相似度
- leetcode 65. Valid Number
- 等保-机房日常巡检记录表
- zip命令 – 压缩文件
- NY--234 -- 吃土豆 [二维动态规划]
- .Net大局观(2).NET Core 2.0 特性介绍和使用指南
- 路由器单区域 OSPF 基本配置
- 腾讯云+CentOS 7.2+python:搭建微信公众号后台入门教程
- 剪辑视频的方法有哪些
- 解决win10下 git闪退的问题(或者使用git命令报错fatal: open /dev/null or dup failed)