资源预览内容
第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
第9页 / 共35页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
浅析倍增思想浅析倍增思想在信息学竞赛中的应用在信息学竞赛中的应用 引言引言它的本质思想是每次根据已经得到的信息,将考虑的范围扩大一倍,从而加速操作。倍增思想是一种十分巧妙的思想,在当今的信息学竞赛中应用得十分广泛。引言引言在解决信息学问题方面,倍增思想主要有这两个方面的应用一、在变化规则相同的情况下加速状态转移二、加速区间操作倍增思想应用之一倍增思想应用之一倍增思想应用之一倍增思想应用之一在变化规则相同的情况下加速状态转移在变化规则相同的情况下加速状态转移在变化规则相同的情况下加速状态转移在变化规则相同的情况下加速状态转移 首先,让我们来看一个简单的例子已知实数a,计算an。 很显然,一种最简单的方法就是令b=a,然后重复(n-1)次进行操作b=b*a.这样,为了得到an,共进行了(n-1)次乘法。现在考虑另外一种方法例一例一将n表示成为二进制形式并提取出其中的非零位,即n=2b1+2b2+2bw,不妨设b1b2=2)的倍增思想为k增思想,则本文所介绍的倍增思想为2增思想。 一个有趣的探讨一个有趣的探讨对于k增思想,最多通过次扩大就可以得到所有需要的值,这里为了讨论方便,简化为logkN. 但是,为了每次扩大(k-1)倍,必须操作(k-1)次。所以时间复杂度为O(k-1)logkN)。本文中k=2,因此复杂度为(2-1)log2N=log2N.一个有趣的探讨一个有趣的探讨为了将k=3与k=2进行比较。这里采用商值比较法:=一个有趣的探讨一个有趣的探讨也就是说,当k3时f(k)为增函数,即恒有f(k)f(2)=0,即(k-1)-log2k0,k-1 log2k. 令 f(k)=(k-1)-log2k.当 k=2时 , f(k)=0; 当 k3时 f(k)=1- =1- 1- 0.51910一个有趣的探讨一个有趣的探讨y1=k-112345678910111213141516876543210y2=log2kky一个有趣的探讨一个有趣的探讨这就从数学角度解释了倍增思想的高效性!总结总结倍增思想应应用用加速状态转移加速区间操作恰当利用计算结果不存在冗余的运算高效简洁独辟蹊径总结总结倍增思想1,2,4,8,16,32,在思考中体会内涵在实战中积累经验自然融入到思考过程中指导自己解决各类问题举重若轻挥洒自如总结总结纸上得来终觉浅绝知此事要躬行谢谢谢谢
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号