《入门经典》——6.28

贪心策略:选择不相交区间问题。

抽象化描述:给出n个区间[ai,bi],从中选出尽可能多的区间,使得这些区间能够不相交。实际问题当中的应用:这个模型常常以日程安排的实际问题作为载体进行考察。

贪心策略分析:

首先我们应该明白的一点是,如果一个区间c是另一个区间d的子区间,那么很显然我们是不会去选区间d的。

那么现在我们来分析整个决策过程中可能出现的情况。

显然我们应该去分析相邻区间。给出3个区间[a1,b1]、[a2,b2]、[a3,b3],并确定区间右端点的关系为b1<b2<b3,这样使得我们得以确定一个变量来分析另一个变量。

对于a1>a2,这是上面我们说过的包含情况。

对于a1<a2,在这种情况下,我们再来讨论区间[a3,b3]和区间[a1,b1]的关系。

i)如果二者不相交,显然当前我们对于区间1和区间2,必然选择区间1.可能有人会问为什么不去讨论区间3和区间2的关系?显然这里必然讨论区间3和区间2相交,不然的话整个情况就没有讨论的意义。

ii)如果两者相交,这样这三个区间都有相交部分,显然我们还是选择区间1,由于其b1是最小的,所以在后面的决策(因此选择的区间的过程基于bi由小到大的排序)中,能够尽可能的为别的区间腾出空间。

因此我们会得到贪心策略,给bi对区间进行排序,每次选择存储区间的线性表的首元素,然后删除掉该元素和与该元素有相交部分的区间。

时间: 2024-11-20 18:20:10

《入门经典》——6.28的相关文章

Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012

[Info   @09:03:33.737] ====================================================================[Info   @09:03:33.743] Team Foundation Server Administration Log[Info   @09:03:33.748] Version  : 11.0.61030.0[Info   @09:03:33.748] DateTime : 05/24/2014 17:0

记5.28大促压测的性能优化&mdash;线程池相关问题

目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下. 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C.UGC.直播等).平台中核心之一的就是订单域相关服务,下单服务.查单服务.支付回调服务,当然结算页暂时还是我们负责,结算页负责承上启下进行下单.结算.跳支付中心.每次业务方进行大促期间平台都要进行一次常规压测,做到心里

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第3/5套:Oracle SQL语言DML语句与事务.主要学习Oracle数据库SQL语句INSERT命令,学习使用UPDATE命令,学习使用DELETE命令,学习创建PL/SQL对象,事务概念与控制,锁的检测和锁争用,了解撤销数据. Oracle SQL语言DML语句与事务管理,课

LeetCode 28. Implement strStr()

https://leetcode.com/problems/implement-strstr/ Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 字符串简单题.一定要写的没BUG. 如果不在函数最后一行写return语句的话,LeetCode会出RUNTIME ERROR. Line 27: co

3月28日 作业

一.项目沟通管理1.项目沟通管理包括哪些过程?(记)1.沟通计划编制 2.信息发布 3.绩效报告 4.项目干系人管理 2.阻碍有效沟通的因素有哪些?1.沟通双方的物理距离 2.沟通的环境因素 3.缺乏清晰的沟通渠道 4.复杂的组织结构 5.复杂的技术术语 6.有害的态度 3.沟通计划编制的第一步是什么?目的是什么?第一步是干系人分析,目的是得出项目中沟通的需求和方式 4.沟通管理计划包括哪些内容(8条)1.项目干系人沟通需求2.对要求发布信息的描述,包括格式.内容和详尽程度3.信息接收的个人或组

用shell脚本实现通用二进制格式mysql 5.5.28 x86_64的安装

用shell脚本实现通用二进制格式mysql 5.5.28 x86_64的安装 首先在网上用gfsoso.com来搜索下载mysql软件包mysql-5.5.28-linux2.6-x86_64.tar.gz,再用 winSCP把mysql上传到服务器上,上传位置可根据个人喜好,我个人一般放在服务器的/usr/local/src目录下. 此处我们是先命令行下实现一次,而后所有操作全部用shell脚本自动实现. 个人环境 centos 6.5 X86-64  所用空闲空间都做成了LVM. 准备工作

linux上源码编译安装mysql-5.6.28

在 linux 上编译安装 mysql-5.6.28.tar.gz http://www.mysql.com/ mysql下载地址: http://www.mysql.com/downloads/mysql/#downloads mysql 官方网站文档: https://dev.mysql.com/doc/ 01.准备工作 yum install -y gcc gcc-c++ cmake make ncurses ncurses-devel bison 02.解压 tar zxf mysql-

5·28 “蝶变”微分销行业交流会

5·28 "蝶变"微分销行业交流会 关注我们,了解更多分销行业知识及动态! 前言:在创业时期中必须靠自己打出一条生路,艰苦.困难是这条路上必经之途径,一旦相遇,除迎头搏击外别无他法,若畏缩退避,即等于自绝其前进?? 风雨无阻 现场火爆 2016年5月28日,一场视觉与听觉的盛宴--"蝶变"微分销大会在广东中山永安新城皇冠假日酒店举行,这一场活动由智上云端企业管理咨询有限公司联合智云网络科技有限公司,共同邀请了多位行业内外的领军人物,亲临现场,分享行业心得. 会议正式

【5.28蝶变微分销大会】亿级平台创始人齐聚中山,现场把脉、资源对接!

01 大会背景 2011年1月,微信诞生 2012年3月,微信用户破1亿 2013年11月,微信注册用户突破6亿,微商诞生 2014年,微商交易额1500亿 2015年,微商交易额2500亿,同年平台型微商爆发 2016至2018年微商将走向两极:品牌化及平台化 当前的交易方式已经从线下向线上转变,从PC向移动转变,从流量时代向消费商的时代转变,谁拥有粉丝.谁能把控团队谁就能制胜未来! 02 大会定位 我有好的产品,想要和更多的优秀平台合作! 我有资源,但不知道如何有效使用? 我在做微商,但当前

第28天:js-Tab栏切换封装函数

一.input.value所有值都是string 二.变量和属性var index=10;//变量var arr=[];//数组arr.index=20;//index为自定义属性,只能在arr下使用alert(arr.index); 三.判断用户输入事件:oninput 四.多分支语句switch语法格式switch(参数){case:参数1:语句:break://退出case:参数2:语句:break://退出...default://默认语句:} 五.下拉菜单事件sele.onchange