- 0
- 0
- 约3.21千字
- 约 28页
- 2026-01-14 发布于江西
- 举报
二分策略在信息学竞赛中的应用1/8/20261WinterCamp2005
二分策略来源一个很简单的想法——在最坏情况下排除尽可能多的干扰,以尽可能快地求得目标效率高!对信息的充分利用,尽可能去除冗余,减少了不必要计算应用广!1/8/20262WinterCamp2005
三种应用类型类型一:二分查找 ——应用于一般有序序列类型二:二分枚举 ——应用于退化了的有序序列类型三:二分搜索 ——应用于无序序列1/8/20263WinterCamp2005
类型一:二分查找
——应用于一般有序序列申明:“有序序列”,仅包含两层意思:第一,它是一个序列,一维的第二,该序列是有序的,即序列中的任意两个元 素都是可以比较的,也就是拥有我们平时 所说的全序关系1/8/20264WinterCamp2005
类型一:二分查找
——应用于一般有序序列二分查找的一般实现过程:(1)确定查找范围(2)选择基准元素(3)关键字比较,确定更精确的范围(4)判断结果,如不够精确,转至(2)1/8/20265WinterCamp2005
例一:顺序统计问题[问题描述]给定一个由n个不同的数组成的集合S,求其中第i小的元素。例如: S={3,7,2,6,8,1,5},i=4 Answer=51/8/20266WinterCamp2005
类型二:二分枚举
——应用于退化了的有序序列与类型一中的二分查找相比,最大的区别在于这里的二分在判断选择哪一个部分递归调用时没有了比较运算*。显式有序序列隐含的退化了的有序序列1/8/20269WinterCamp2005
例二:BTP职业网球赛[问题描述]N(N≤65536)—有N头奶牛(N是2P)参加网球淘汰赛。即N头奶牛分成N/2组,每组两头奶牛比赛,决出N/2位胜者;所有胜者继而分成N/4组比赛……直至剩下一头牛是冠军。K(1≤K≤N-1)—比赛既要讲求实力,又要考虑到运气。每头奶牛都有一个BTP排名,恰为1-N。如果两头奶牛的排名相差大于给定整数K,则排名靠前的奶牛总是赢排名靠后的奶牛;否则,双方都有可能获胜。Answer—现在观众们想知道,哪头奶牛是所有可能成为冠军的牛中排名最靠后的。并要求你列举出一个可能的比赛安排使该奶牛获胜。1/8/202610WinterCamp2005
初步分析由于N很大,猜想可以通过贪心方法解决。 K+1?1 K+2?2 …… 2K?K 3K+1?2K+1 …… ……1/8/202611WinterCamp2005
初步分析但我们很容易找到反例,例如:N=8,K=2但最优解为6。解决方法:枚举!3?14?27?58?64?38?74?8图BTP-16?75?34?82?16?54?26?4图BTP-21/8/202612WinterCamp2005
性质:隐含的有序性如果排名为X的选手最终获胜,那么排名在X前的选手Y也可以获胜。证明:情况一:Y被Z≠X击败Z??…Y??…X??Z?…??… ?? …??YXXXYYYX1/8/202613WinterCamp2005
性质:隐含的有序性如果排名为X的选手最终获胜,那么排名在X前的选手Y也可以获胜。证明:情况二:Y被X击败Y??…X??… ? …… ?? …??XXYXYYYX1/8/202614WinterCamp2005
问题的解决于是,我们可以二分枚举获胜的X。知道了X,能否很快构造出对战方式?可以证明这样贪心是正确的。如果利用静态排序二叉树,整个问题可以在O(Nlog2N)时间完成。例如N=8,K=2,X=66?75?34?82?16?54?26?4可以!1/8/202615WinterCamp2005
小结算法的根本——在一个隐含的退化了的有序序列中进行二 分查找 00000000111111 XAns X≥Ans我们所寻找的—— 两种值的分界点。11/8/202616WinterCamp2005
小结应用这类二分枚举的最优性问题近来很是热门(如NOI2003树的划分),而且这类试题很容易诱导选手直接采用动态规划或是贪心算法,而走入死胡同。所以,今后我们在考虑最优性问题时,应当注意问题是否隐含了一个有序的01序列,它是否可以用二分枚举将最优性问题转化为可行性问题。切记!“退一步海阔天空”
原创力文档

文档评论(0)