首页 > TAG信息列表 > P1083
P1083 [NOIP2012 提高组] 借教室
暴力的话,就是两重循环,然后挨个去判断能不能满足,复杂度\(O(mn)\),过不了 思路:二分答案,对于二分到的一个值x,去检查能否满足前x个(包括x)订单,如果能满足,说明前y(y<x)个订单都可以满足,所以可以二分到最大的可以满足到的订单,但是题目要的是第一个不能满足的订单,所以需要在二分过程中记答案,另P1083 [NOIP2012 提高组] 借教室
Label 简单的二分答案+简单差分数组维护 Description https://www.luogu.com.cn/problem/P1083 Solution 解法一—线段树 维护区间 r r r数组最小值,每一个订单相当于区间减P1083 [NOIP2012 提高组] 二分 + 差分
题意 传送门 P1083 [NOIP2012 提高组] 借教室 题解 二分答案,问题转化为判定第 1 − m i d 1-midP1083 [NOIP2012 提高组] 借教室
不要把天数看成一个动态的时间,用数组存储某天原本有多少个教室,表示为第i天原有s[i]个教室. 很容易看出来问题有单调性,所以二分订单数求解. 对于每份订单,其将会使第a天到第b天的教室数量均减少c个.故构造一个差分数组sum,使得sum的前缀和表示对应某天教室数量的变化量.则当【差分】P1083 借教室
题目描述 在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海量租借教室的信息,我们自然希望编程解决这个问题。 我们需要处理接下来天的借教室信息,其中第天学校有个教洛谷 P1083 借教室(二分答案)
题目链接:https://www.luogu.com.cn/problem/P1083 因为有一个时间截点,在这个截点的前面,总是能满足教室的要求,而在这个截点的后面,都不能满足教室的要求,所以可以二分枚举这一个时间截点。 AC代码: 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 usingP1083借教室 noip提高组复赛2012
读完题目我们大概就可以想到一种暴力解法了 #include<iostream> #include<cstring> #include<cstdio> using namespace std; const int N=1e6+5; int sum[N],d,r[N],s,t,n,m; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) sP1083 借教室
差分数组维护前缀和,之后从后往前判断是否合法,找到尽量位置在后的合法位置,判断输出就好了 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 #include<stack> 7 #include<deque> 8 #include<algorithm> 9 #defP1083 借教室
题面:https://www.luogu.org/problem/P1083 一题简单的线段树(但在这题看来似乎是一种玄学算法) 开一个线段树维护区间最小值和支持区间修改即可 只要整个区间中有<0的就不行,即教室不够了.输出当前的订单号就行. Code: #include<cstdio> #include<algorithm> #include<cstring>NOIP2012 洛谷P1083 借教室
传送门 题意:有一些学(xian)生(quan)要借教室。在n天内,第i天学校有ri个教室。有m份订单,每份订单有三个数值dj,sj,tj,分别表示这个订单从第sj天开始到第tj天结束(包括端点),每天需要dj个教室。 我们要按照订单的顺序一次处理每一个订单,如果有某个订单不能满足(当天的教室数量小于需求数),就需要输P1083 借教室
————————————————————————————————————-- 今日份的1A+独立思考+短时间 本来准备写线段树的,刚开始写就想到了 这tm直接差分不就行了 一开始还以为会T几个点,结果直接A了 好水的DAY2 不过刚学了树上差分,如果没学可能现在还在调线段树吧 QAQ #in