noip2012-day2-t2

【问题描述】

  在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。
面对海量租借教室的信息,我们自然希望编程解决这个问题。
我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj, sj, tj ,表示某租借者需要从第sj 天到第tj 天租借教室(包括第sj天和第tj天),每天需要租借dj个教室。
  我们假定,租借者对教室的大小、地点没有要求。即对于每份订单,我们只需要每天提供dj个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。
借教室的原则是先到先得,也就是说我们要按照订单的先后顺序依次为每份订单分配教室。如果在分配的过程中遇到一份订单无法完全满足,则需要停止教室的分配,通知当前申请人修改订单。这里的无法满足指从第sj天到第tj天中有至少一天剩余的教室数量不足dj个。
  现在我们需要知道,是否会有订单无法完全满足。如果有,需要通知哪一个申请人修改订单。

【解】

  这道题我们需要用到二分法和前缀和。对于每一份订单,我们有三个数s,t,d我们用一个数组sum储存前缀和。假如有五天,一开始sum数组为【0,0,0,0,0】当s=2,t=4,d=2时。我们做这样的操作sum[s]+=d;sum[t+1]-=d;这样sum就变为了【0,2,0,0,-2】然后我们求前缀和sum就变为了【0,2,2,2,0】我们就完成了对第二天到第四天需要借用两个教室的记录。想到这里,后面我们只需要利用二分法,二分前几个订单,然后我们check一下,看对于前x个订单是否每天的教室都够用,最后就能二分得到答案了。ps:此题也可以用线段树解决,但要使用lazy标记。

转载于:https://www.cnblogs.com/hyl2000/p/5850947.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习——人工神经网络之后向传播算法(BP算法)

目录 一、后向传播算法的本质——梯度下降法求局部极值 1、w迭代公式的合理性

获取视图的宽高

1 view.measure(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 2 int width view.getMeasuredWidth(); 3 int height view.getMeasuredHeight(); 转载于:https://www.cnblogs.com/cmgrass/p/4978222.html

排序算法02--冒泡排序

思路:冒泡排序 就是把大的数一个个沉到下面,当然也可以是把小的数一个个浮到上面。 在最外层需要比较n-1次,因为n-1个大的数被沉到了下面,剩下一个自然就是最小的数了。 在这n-1次的里层,还需要亮亮相互比较&#xff0…

机器学习——人工神经网络之参数设置(BP算法)

目录 一、复习(BP算法) 二、训练模型的建议 三、参数设置内容 1、随机梯度下降(SGD)

关于▲的各种交点

对于△ABC证明: ①三角形的三条中线交于一点: 等腰三角形:作中线BD、CE与AC、AB交于D、E,相交于O,连接AO并延长交BC于F; 证△ABD全等于△ACE,再证△EBO全等于△D…

javaScript获取url中的参数

var urlTools {//获取RUL参数值getUrlParam: function(name) { /*?videoIdidentification */var params decodeURI(window.location.search); /* 截取?号后面的部分 index.html?actdoctor,截取后的字符串就是?actdoctor */var reg …

机器学习——支持向量机SVMpython实现

一、SVM理论 可见以下文章: 《机器学习——支持向量机SVM之线性模型》 《机器学习——支持向量机SVM之非线性模型低维到高维映射》 《机器学习——支持向量机SVM之非线性模型原问题与对偶问题》 《机器学习——支持向量机SVM之非线性模型原问题转化为对偶问题》…

琐碎易错点

1.font-size 设置的是字体的高 2.浏览器内核: 主流浏览器   内核 IE       trident Firfox     Gecko Chorme    Webkit(原来)/blink(现在) Safari     Webkit(苹果公司独立研发的&a…

Python安装Jupyter Notebook配置使用教程

原文见:https://blog.csdn.net/qq_27825451/article/details/84427269 一、什么是jupyter 1、简介: jupyter notebook是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。它可以直接在代码旁…

ExtJS4.2学习(10)分组表格控件--GroupingGrid(转)

鸣谢网址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-17/179.html --------------------------------------------------------------------------------------------- 分组表格控件在我们的开发中经常被用到,GroupingGrid…

九个Console命令,让js调试更简单

一、显示信息的命令 1: <!DOCTYPE html>2: <html>3: <head>4: <title>常用console命令</title>5: <meta http-equiv"Content-Type" content"text/html; charsetutf-8" />6: </head>7: <body>8: …

numpy——axis

size()和max()中的含义 以前我理解axis0代表行&#xff0c;axis1代表列&#xff1b; 但是这种含义在函数size()和max()中恰恰相反&#xff1b; 其实不是这样的&#xff0c;我们回到单词axis本身&#xff0c;它的意思是“轴”&#xff0c;没错轴就是代表一个方向&#xff0c;像…

Android ListView几个重要属性

1、transciptMode属性&#xff0c;需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息&#xff0c;并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件&#xff08;支持ScrollBar&#xff09;自动滑动到最底部…

Halcon例程(基于GMM模型的分类)详解 —— classify_citrus_fruits.hdev

一、例程简介 该例程比较有代表性&#xff0c;属于Halcon里的分类方法之一&#xff0c;直接调用Halcon封装好的GMM分类器&#xff08;高斯混合模型&#xff09;对橘子和柠檬进行分类。GMM属于概率分类方法&#xff0c;属于P(Y|X)&#xff0c;通过对样本的概率密度分布进行估计…

正则表达式匹配不包含特定字符串解决匹配溢出问题

匹配溢出问题在正则表达式当中算是比较常见的问题&#xff0c;它常常导致我们匹配结果莫名其妙的出错&#xff0c;本文专门为你讲解如何通过匹配不包含特定字符串的方法来解决这类问题。 那么&#xff0c;什么是匹配溢出呢&#xff1f; 下面我们来看个例子&#xff1a; 源文本&…

numpy——mgrid

x1,x2 np.mgrid(x1min:x1max:num1j,x2min:x2max:num2j)x1返回的是x1min到x1max间均匀分成num1个数&#xff0c;进行横向扩展为方阵 x2返回的是x2min到x2max间均匀分成num2个数&#xff0c;进行纵向扩展为方阵 Examples -------- >>> np.mgrid[0:5,0:5] array([[[0,…

Halcon例程(基于3D形状匹配识别方法)详解 —— create_shape_model_3d_lowest_model_level.hdev

一、例程简介 最近在研究3D识别方面的东西&#xff0c;查了不少资料&#xff0c;发现halcon里有不少关于三维物体识别的例程&#xff0c;这里对其中一个做出详解。该例程是基于三维匹配方法的&#xff0c;因为有三维模型SM3&#xff0c;所以不需要自己创建&#xff1b;另因为例…

15.瀑布流、测量

排行界面TopProtocol &#xff1a;json数据就是写字符串&#xff0c;所以不需要写bean对象public class TopProtocol extends BaseProtocol<List<String>> { Override public List<String> paserJson(String json) { List<String> datasnew ArrayList&…

linear-gradient线性渐变

background:linear-gradient(180deg, sliver 20%, skyblue 80%, gray 100%);180deg 是线性渐变的角度,水平方向;如果是90deg,则是垂直方向. silver 20% 是最上面的颜色和该颜色所在的位置,可以为负值,,如 linear-gradient(180deg, silver -7%, pink 80%, skyblue 127%);的效果是…

numpy——stack

np.stack(array,axis,outNone)&#xff0c;函数原型。 其中最重要是的这个axis怎么理解的。 举例说明&#xff1a;arrays [np.random.randn(3, 4) for _ in range(10)] 会生成一个 10 *( 3 * 4 )的矩阵列表。十个矩阵&#xff0c;每个矩阵是(3 * 4)大小。 首先说明一下axis的映…