付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2012 集训队互测 世博会() 解题市中学一、题意简述有 N 个物品,从 1 到 N,每个物品有两个属性 Ai 和 Bi,定义两个物品的差别为它们对应属性差的绝对值中较大的一个。之后有 Q 个询问,对于每个询问,给出 Li 和 Ri,然后需要要设定一个属性为 A和 B的虚拟物品,使这个虚拟物品与从 Li 到 Ri 的每一个物品的差异度之和最小,然后对每个询问输出最小的差异度数值。1=N=100000, 1=Q=100000, |Ai|,|Bi|=1000000000二、题目分析首先对题目条件进行转化,若两个物品 A1,B1 和 A2,B2,它们的差异为 MAX|A1-A2|, |B1-B2|
2、= MAXA1-A2, B1-B2, B2-B1, A2-A1= MAX(A1+B1)/2 - (A2+B2)/2) + (A1-B1)/2 - (A2-B2)/2,(A1+B1)/2 - (A2+B2)/2) + (A2-B2)/2 - (A1-B1)/2,(A2+B2)/2 - (A1+B1)/2) + (A1-B1)/2 - (A2-B2)/2,(A2+B2)/2 - (A1+B1)/2) + (A2-B2)/2 - (A1-B1)/2= MAX(A1+B1)/2 - (A2+B2)/2, (A2+B2)/2 - (A1+B1)/2+ MAX(A1-B1)/2 - (A2-B2)/2,
3、(A2-B2)/2 - (A1-B1)/2= |(A1+B1)/2 - (A2+B2)/2| + |(A1-B1)/2 - (A2-B2)/2|(转化过程中利用了一条重要的性质 |x| = MAXx, -x)然后令 Xi = (Ai+Bi)/2, Yi = (Ai-Bi)/2,并让每一个物品对应平面上坐标为(Xi, Yi)的点。这样两个物品的差异就变成了|X1-X2|+|Y1-Y2|,即它们在平面对应的点的曼哈顿距离。而要求的是和一些物品差异度之和最小的物品,把其转化为求距离一些点曼哈所需的物品的两个属性 A顿距离之和最小的点。当和 B就可以表示为A = X + Y, B = X- Y求出这个
4、点且坐标为(X, Y)时,转化为平面图上的曼哈顿距离后,题目就显得简单了。而上文中的推导步骤又长又繁琐,但这个转化还是比较容易想到的。若以物品的两个属性 A 和 B 为坐标在平面上取点,会发现,两个点的两个坐标差较大的一个和这两个点在斜向方向上的曼哈顿距离成比例,如下图所示A 到 B 和 A 到 C 的“差异”都转化为了斜向的曼哈顿距离。观察出这个之后,上文中的推导得出的结论也不难发现。之后来解决最小曼哈顿距离和。可以看到,曼哈顿距离在 x 轴方向和 y轴方向是独立的,可以把其拆开考虑,如下面的推导所示(|Xi-X|+|Yi-Y|) = |Xi-X| + |Yi-Y|把问题拆成了两个子问题之和
5、,这个子问题是求到数轴上多个点距离之和最小的点。很明显的,这个点的坐标应该和把所有点排序后处于正的那个点坐标相同。若这多个点的数目是偶数,则坐标取中间的两个点之间的任意一个位置都可以。这个结论证明也很简单,把所以点两两配对,最左边和最右边的配成一对,左边数第二个和右边数第二个配成一对取的点到某一对点的距离和总是大于等于这一对点的距离且取的点在这一对点之间时取等。所以要把取的点放在每一对点之间,即所有点的中位数的位置。这样的话,计算出所有的Xi 和 Yi,然后对应每一个询问,求出对应范围 X 的中位数和 Y 的中位数作为 X和 Y。然后可以求出 A和 B然后计算每一个差异度再求和,也可以用 X和
6、 Y计算出每一个曼哈顿距离再求和,这两种方法都能得到最后要输出的。若用快速查找的方法求中位数,这个方法的复杂度就是 O(qn),明显不满足题目的要求。而实际上,求中位数的时候可以利用一些高级的数据结构,如划分树可以在O(nlogn)-O(logn)的时间内求出区间第 k 大数,并且也能在求出第 k 大数的同时求出所需要的曼哈顿距离和。使用划分树可以通过这道题的所有测试点,分树的大体实现方法。后面也主要讲解一下划三、划分树的实现建立划分树之前需要把序列中的所有数进行稳定的排序后生成一个新的序列。划分树的结构是基于线段树的,根节点包含原来整个序列,每个节点包含一段序列,叶节点包含一个长度为 1 的
7、序列。每个节点包含的范围对应的是排序后的序列中的范围,就是若一个节点对应的线段是l 到 r,它就包含第 l 小到第 r 小的所有数字。但这些数字在每个节点中的顺序不是按大小关系排列的,而是按在原序列中的顺序排列的。建立划分树时,根节点就包含原来的整个序列。之后建立每一个节点的左右子树时,先从排序后的序列中查询出这个节点的包含的数字的中位数,然后从左往后扫描每一个数字,小于等于中位数的放到树中,大于中位数的放到右子树中。并且每处理一个数字就计算出到这里为止对应树的哪一个位置的话可以把节点中的每一个子序列对应的树和右子树中的子序列求出来。构建直到一个节点只包含 1 个数为止。可以看到划分树有 O(
8、logn)层,且构建划分树的时间复杂度以及划分树的空间复杂度都是 O(nlogn)。之后要查询区间第 k 小的数字,先在根节点中确定对应的区间,再求出它对应的树的区间和右子树的区间。若 k 小于等于对应的树的区间长度,则第 k 大树在左子树中,否则在右子树中,之后向下递归直到叶节点即可。但根据题目中的要求,不仅需要求出中位数,还要求出最小距离和。而要求出最小距离和只要把范围内的数字分为小于中位数和大于中位数的两部分分别求和就可以了。考虑在划分树中查找的过程,若到某一节点时,第 k 小的数在其树内,要向树走,此时右子树中所有的数都大于这个第 k 小的数 求和使用部分和的算法,第 k 小数在右边时同理。最后总的时间复杂度为 O(nlogn+qlogn)。对右子数对应范围内的数求和即可,四、题目来源我原本是看到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国植物提取物行业发展趋势与投资盈利预测报告
- 2025-2030中国棕榈酰山茶提取物行业现状规模与前景动态预测报告
- 2026年中铁四局岗位考核考前自测高频考点模拟试题有完整答案详解
- 2026年注册土木工程师题库附完整答案详解(考点梳理)
- 小学环保科技游戏说课稿
- 小学英语新版-牛津译林版四年级下册Unit 6 Whose dress is this第3课时教学设计
- 活动11 制作彝绣书签说课稿2025学年小学劳动北师大版五年级-北师大版
- 小学人教部编版13 ang eng ing ong教案设计
- 小学音乐湘艺版二年级下册唱起来跳起来教案及反思
- 肝硬化患者的拔罐护理
- 2026年国家电网招聘《计算机类》题库综合试卷含答案详解【培优】
- 青年婚育意愿变迁及政策应对策略研究课题申报书
- 派出所联防联控工作制度
- 焊工安全培训复审课件
- 糖尿病护理新进展
- 2025年双碳目标实现路径探索项目可行性研究报告及总结分析
- 印尼语基础日常交流口语教程
- 军事科技:量子点材料在特殊装备中的应用案例
- 医学超级全医学影像学第版泌尿系统教案
- 基于子空间动态模式分解的电力系统机电振荡模态精准提取方法研究
- (正式版)DB44∕T 2720-2025 《高速公路养护作业交通组织管理技术规范》
评论
0/150
提交评论