算法合集之《浅谈二分策略的应用》

上传人:jiups****uk12 文档编号:53780663 上传时间:2018-09-05 格式:PPT 页数:28 大小:436KB
返回 下载 相关 举报
算法合集之《浅谈二分策略的应用》_第1页
第1页 / 共28页
算法合集之《浅谈二分策略的应用》_第2页
第2页 / 共28页
算法合集之《浅谈二分策略的应用》_第3页
第3页 / 共28页
算法合集之《浅谈二分策略的应用》_第4页
第4页 / 共28页
算法合集之《浅谈二分策略的应用》_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《算法合集之《浅谈二分策略的应用》》由会员分享,可在线阅读,更多相关《算法合集之《浅谈二分策略的应用》(28页珍藏版)》请在金锄头文库上搜索。

1、二分策略在信息学竞赛中的应用,华东师大二附中 杨俊,2018/9/5,WinterCamp 2005,2,二分策略,来源一个很简单的想法在最坏情况下排除尽可能多的干扰,以尽可能快地求得目标 效率高!对信息的充分利用,尽可能去除冗余 ,减少了不必要计算 应用广!,2018/9/5,WinterCamp 2005,3,三种应用类型,类型一:二分查找应用于一般有序序列 类型二:二分枚举应用于退化了的有序序列 类型三:二分搜索应用于无序序列,2018/9/5,WinterCamp 2005,4,类型一:二分查找 应用于一般有序序列,申明:“有序序列”,仅包含两层意思: 第一,它是一个序列,一维的 第二

2、,该序列是有序的,即序列中的任意两个元 素都是可以比较的,也就是拥有我们平时 所说的全序关系,2018/9/5,WinterCamp 2005,5,类型一:二分查找 应用于一般有序序列,二分查找的一般实现过程: (1)确定查找范围 (2)选择基准元素 (3)关键字比较,确定更精确的范围 (4)判断结果,如不够精确,转至(2),2018/9/5,WinterCamp 2005,6,例一:顺序统计问题,问题描述给定一个由n个不同的数组成的集合S,求其中第i小的元素。例如:S= 3, 7, 2, 6, 8, 1, 5 ,i=4Answer=5,2018/9/5,WinterCamp 2005,7,问

3、题的一般解法,二分查找的过程: (1)确定待查找元素在S中 (2)在n个元素中随机取出一个记为x,将x作基准 (3)设S中比元素x小的有p个(4)如果找出x,输出;否则转至(2) 因为x是随机选出的,由简单的概率分析,可得算法的复杂度期望值为O(n)。,如果ip,我们将范围确定为S中比x大的元素,求该范围内第i-p-1个元素;,2018/9/5,WinterCamp 2005,8,小结,举这个例子,是想说明两点:第一,二分查找 = logn第二,二分查找 = 平均,?,?,2018/9/5,WinterCamp 2005,9,类型二:二分枚举 应用于退化了的有序序列,与类型一中的二分查找相比,

4、最大的区别在于这里的二分在判断选择哪一个部分递归调用时没有了比较运算*。,显式有序序列,隐含的退化了的有序序列,2018/9/5,WinterCamp 2005,10,例二:BTP职业网球赛,问题描述,N(N65536)有N头奶牛(N是2P)参加网球淘汰赛。即N头奶牛分成N/2组,每组两头奶牛比赛,决出N/2位胜者;所有胜者继而分成N/4组比赛直至剩下一头牛是冠军。,K (1KN-1)比赛既要讲求实力,又要考虑到运气。每头奶牛都有一个BTP排名,恰为1N。如果两头奶牛的排名相差大于给定整数K,则排名靠前的奶牛总是赢排名靠后的奶牛;否则,双方都有可能获胜。,Answer现在观众们想知道,哪头奶牛

5、是所有可能成为冠军的牛中排名最靠后的。并要求你列举出一个可能的比赛安排使该奶牛获胜。,2018/9/5,WinterCamp 2005,11,初步分析,由于N很大,猜想可以通过贪心方法解决。K+11 K+22 2KK 3K+12K+1 ,2018/9/5,WinterCamp 2005,12,初步分析,但我们很容易找到反例,例如:N=8, K=2但最优解为6。 解决方法:枚举!,31 42 75 86 43 87 48图BTP-1,67 53 48 21 65 42 64图BTP-2,2018/9/5,WinterCamp 2005,13,性质:隐含的有序性,如果排名为X的选手最终获胜,那么排

6、名在X前的选手Y也可以获胜。 证明: 情况一:Y被ZX击败,Z? Y? X? Z ? ? ?,Y,X,X,X,Y,Y,Y,X,2018/9/5,WinterCamp 2005,14,性质:隐含的有序性,如果排名为X的选手最终获胜,那么排名在X前的选手Y也可以获胜。 证明: 情况二:Y被X击败,Y? X? ? ?,X,X Y,X,Y,Y,Y X,2018/9/5,WinterCamp 2005,15,问题的解决,于是,我们可以二分枚举获胜的X。 知道了X,能否很快构造出对战方式?可以证明这样贪心是正确的。 如果利用静态排序二叉树,整个问题可以在O(Nlog2N)时间完成。,例如 N=8,K=2,

7、X=6 67 53 48 21 65 42 64,可以!,2018/9/5,WinterCamp 2005,16,小结,算法的根本在一个隐含的退化了的有序序列中进行二 分查找0 0 0 0 0 0 0 0 1 1 1 1 1 1 XAns XAns 我们所寻找的两种值的分界点。,1,2018/9/5,WinterCamp 2005,17,小结,应用这类二分枚举的最优性问题近来很是热门(如NOI2003树的划分),而且这类试题很容易诱导选手直接采用动态规划或是贪心算法,而走入死胡同。所以,今后我们在考虑最优性问题时,应当注意问题是否隐含了一个有序的01序列,它是否可以用二分枚举将最优性问题转化为

8、可行性问题。切记!“退一步海阔天空”。,2018/9/5,WinterCamp 2005,18,类型三:二分搜索 应用于无序序列,二分策略,有序序列,无序序列,2018/9/5,WinterCamp 2005,19,例三:推销员的旅行,问题转述这是一个交互式问题:在一个未知的竞赛图(即有N顶点,两点间恰只含一条边的有向图)中,通过不断询问任意两点之间边的方向,寻找一条哈密尔顿路。目标是询问次数尽可能少。思考 . . .,2018/9/5,WinterCamp 2005,20,初步分析,为了避免询问的盲目性,我们尝试使用增量法逐步扩展序列。 我们先任意询问两个点不妨设询问结果是1到2有边,于是,

9、我们就得到一条长度为1的线路。,1,2,2018/9/5,WinterCamp 2005,21,初步分析,假设我们已设计了一条含有前i个点、长度为i-1的线路A1A2Ai,我们希望再加入点i+1,将其变成长度为i的线路。,i+1,i+1,2018/9/5,WinterCamp 2005,22,进一步分析,这样的询问会不会问到底也没法插入i+1? 不会!因为i+1有边到Ai。 由此,我们得到了一种询问方法,但最坏情况下总的询问次数可能是O(N2)的。,i+1,i+1,2018/9/5,WinterCamp 2005,23,二分搜索的使用,由于对每个点Ak(1ki),要么Aki+1,要么i+1Ak

10、。且已知A1i+1,i+1Ai。因此,我们可以用二分搜索来寻找Ak,使i+1可以插入Ak与Ak+1之间。这样,我们所需要的询问次数仅为O(nlogn)。,i+1,i+1,A1,Ai/2,Ai,i+1,2018/9/5,WinterCamp 2005,24,小结,算法的根本在一个无序的01序列中进行二分查找0 0 1 0 1 1 1 0 0 1 1 1我们所寻找的一个特殊的子串01,0 1,2018/9/5,WinterCamp 2005,25,小结,由此可见,这样的二分搜索方法往往应用于那些可行解较多,但需要高效地构造一组可行解的问题。,O,P,?,2018/9/5,WinterCamp 2005,26,总结,在这里我仅简单地介绍了三个二分策略应用的例子,要涵盖二分策略的所有应用甚至是大部分应用都是困难的。这里我想指出的是:二分思想虽然简单,但是它的内容还是非常丰富的。我们不能让二分思想仅仅停留在一般有序数组上的最基本的二分查找,而应该扩展到更广泛的应用上。,2018/9/5,WinterCamp 2005,27,总结,二分策略常与其它一些算法相结合,并借以隐蔽自己,逃离我们的视线。 这就要求我们能有 扎实的基本功 丰富的解题经验 大胆合理的猜测 活跃的创造思维 方可“以不变应万变”!,2018/9/5,WinterCamp 2005,28,Thank you!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号