引理2:
扩展方式2不会使当前流经过的最长边的值变小。
证明:
如下图,假设原来存在一条流的路径1→u→v→n,方式2将其扩展成1→v→n和1→u→n。
若1→u、1→v、u→n、v→n四条路径中存在长度不小于w(u,v)的边,那么最长边边权的值不会减少;但如果所有边权都小于w(u,v),那么根据引理1,算法会优先选择1→v→n和1→u→n两条路径,不会从(u,v)经过,这与假设矛盾。
综上可知引理2成立。
定理:
此算法是正确的。
证明:
根据引理1我们知道算法在贪心式地寻找增广路,而根据引理2我们知道算法得到的永远是当前流量下的最优解。
因此算法是正确的。
综上可知算法是正确的。
注意到修改过的距离标号不可能为负,而边权都为正数,可以直接套用普里姆算法计算距离标号。
在题目中的数据范围我们选择最简单的O(n2+p)的算法。
当图为稀疏图时,可以利用堆使复杂度降为O(nlog2n+plog2n)。
距离标号需要求t次,总时间复杂度仅为O(t(n2+p))。
小结
在本题的解决中,作者抓住两组算法的相似之处进行类比,取得了相当不错的效果。
这提示我们,在学习过程中对知识的归纳和总结是很有必要的。
只有掌握的知识形成了一定体系,才能灵活地对问题进行类比,才能从类比中提炼优秀的算法。
2.3图形类比数式:
从感性上去认识,图形和数式差异很大。
但有时候忽略图形的次要信息而将主要信息转化为数式,把难以处理的几何问题转化为较易处理的代数问题,反而能对解题产生帮助。
这种类比模式的关键在于区分什么是图形中的主要信息,什么是次要信息。
对于不同的问题,其主要信息与次要信息是不同的。
例如当求多变形质心时必须知道每个点的坐标,但是求周长时知道每条边的长度就可以了。
一般来讲,对解答问题有帮助的信息才叫做主要信息。
下文的例子就体现了舍弃次要信息的必要性。
例三:
点集同构问题
✧题意描述
给定包含n个点的集合S和S’中每个点的坐标,判断它们是否同构。
两个点集同构,指它们在旋转、翻转、平移、缩放后能互相重合。
✧解法分析
本题给人的第一感觉就是条件太多太宽了。
翻转操作好处理,因为只能翻或者不翻。
但是旋转、平移、缩放的操作都有无限种可能。
关注点集中的不变量质心。
设n个点的坐标分别为(x1,y1),(x2,y2),…,(xn,yn),则质心O坐标为
下文可以看到,求出质心的好处在于可以将相对于直角坐标系的的坐标转化成相对于质心的量。
缩放是对点集整体缩放。
假设点集中任意一点与质心间都有线段连接,并且点P缩放后变为P’,则有下列恒等式:
其中A,B是点集S中任意两点。
这个式子表明无论如何缩放,点集中任意两条线段长度之比是恒定的。
也就是说
其中m是点集中所有线段长度的最大值。
易知这个最大值可以在O(n)的时间内求出。
由此我们便求出了S到S’的缩放比k,按照缩放比将坐标扩大k倍即可。
现在到了关键的部分,注意每个点P与质心的关系,点P可以看作从质心出发,引一条长度为|OP|的线段,再从与横轴平行的方向顺时针旋转alpha度(也就是说P关于O的方向角是alpha度)。
把所有的点按照方向角优先、到质心距离次优先的规则进行排序,那么一个点集就可以看成n次操作,每次操作将一条一个端点在O的线段顺时针旋转一个量,再拉长或缩短。
一次操作可以用一个二元组(delta,distance)来描述,其中delta就是排序后相邻两点的方向角之差。
这样一个n个点的点集S就被对应成了一个长度为n的串T。
并且点集可以旋转,也就是串的起始位置不确定,是一个环串。
因此两个点集同构,即是它们转换后得到的环串相同。
而判断环串T与T’是否相同,可以把T和T’从某个地方截断得到U和U’,再使用kmp算法判断U’在串UU中是否出现即可。
概括一下上面的讨论:
求质心的费用为O(n),排序的耗费为O(nlog2n),执行kmp算法的费用为O(3n),最后翻转再判断的费用为O(n),因此整个算法的复杂度就是O(nlog2n)。
有一点需要补充的是,以上的讨论都忽略了某个点与质心重合的情况,但处理此问题只需要特判即可。
小结
本题的关键是处理旋转和平移。
我们忽略图形的次要信息——绝对坐标,把关注的重点变为点跟质心的关系以及点跟点的关系,因此平移问题就不存在了,用环串类比旋转操作自然就产生了最后的解法。
三、总结:
本文对类比作了一定的介绍,同时较深入地讨论了一些常见的类比模式。
以上所有的解题方法都包含了一种思想,就是类比思想。
类比思想是一种转化的思想,但是类比思想在转化过程中突出的不是演绎式的化归,而是跳跃式的比较。
固然,类比在思考过程中可能是逐步进行的,但是在外在表现上一般是天马行空的。
从这一点上来说,类比是一种相当不好掌握的思想方法。
但无论怎么样的类比,都会有以下的特性:
1.可类比性:
原问题和转化后的问题具有某些相似之处,正是这些相似之处为类比提供了理论依据和思考动机。
2.可简化性:
转化后的问题必然要比原问题更简单。
这个“简单”可以是更直观,便于解题者思考;可以是更常见,能利用的理论较多;也可以是更规范,能用标准的方法解决。
3.可移植性:
转化后问题的解法要与类比对象密切相关。
例如在例三中把点集类比为环串后,要密切注意串的匹配、求最长某某子串这一类算法。
解法与类比对象相关,才能体现出类比的必要与优越。
尽管类比思想非常优秀,但并非没有局限性。
类比要在转化的前提下才能完成,也就是说对于那些不需要转化的问题,类比是没有任何作用的。
四、感谢:
衷心感谢向期中老师在我写这篇论文时对我的指导和帮助。
衷心感谢刘汝佳教练对我的指导和启发。
衷心感谢陈启峰、杨沐、郭华阳、杨浩、冯子明、吴戈、袁昕颢、周玉姣、刘靓等同学在临近期末考试时还能帮助审阅我的论文,并提出很多宝贵的意见。
五、参考文献:
[1]《数学闯关——数学思想和方法的领悟》袁银宗编著
[2]《算法艺术与信息学竞赛》刘汝佳黄亮著
[3]USACOOPEN05:
peaks
[4]USACOFEB05:
secret
[5]PolandOlympiadofInformatics2005StageI:
PUN
六、附录:
例一的原题:
Problem4:
Landscaping[BrianDean,2005]
FarmerJohnismakingthedifficulttransitionfromraisingmountain
goatstoraisingcows.Hisfarm,whileidealformountaingoats,
isfartoomountainousforcattleandthusneedstobeflattened
outabit.Sinceflatteningisanexpensiveoperation,hewantsto
removethesmallestamountofearthpossible.
Thefarmislongandnarrowandisdescribedinasortoftwo-dimensional
profilebyasinglearrayofN(1<=N<=1000)integerelevations
(range1..1,000,000)likethis:
123332132212,
whichrepresentsthefarm'selevationsinprofile,depictedbelow
withasterisksindicatingtheheights:
****
*********
************
123332132212
Acontiguousrangeofoneormoreequalelevationsinthisarray
isa"peak"ifboththeleftandrighthandsidesoftherangeare
eithertheboundaryofthearrayoranelementthatislowerin
elevationthanthepeak.Theexampleabovehasthreepeaks.
Determinetheminimumvolumeofearth(eachunitelevationreduction
countsasoneunitofvolume)thatmustberemovedsothatthe
resultinglandscapehasnomorethanK(1<=K<=25)peaks.Note
wellthatelevationscanbereducedbutcanneverbeincreased.
Iftheexampleaboveistobereducedto1peak,theoptimalsolution
istoremove2+1+1+1=5unitsofearthtoobtainthisset
ofelevations:
***-
*****----
************
123332111111
where'-'sindicateremovedearth.
PROBLEMNAME:
peaks
INPUTFORMAT:
*Line1:
Twospace-separatedintegers:
NandK
*Lines2..N+1:
Eachlinecontainsasingleintegerelevation.Line
i+1containstheelevationforindexi.
SAMPLEINPUT(filepeaks.in):
121
1
2
3
3
3
2
1
3
2
2
1
2
INPUTDETAILS:
Thisistheexampleusedabove.
OUTPUTFORMAT:
*Line1:
Theminimumvolumeofearththatmustberemovedtoreduce
thenumberofpeakstoK.
SAMPLEOUTPUT(filepeaks.out):
5
例二的原题:
Problem2:
SecretMilkingMachine[VladimirNovakovski,2003]
FarmerJohnisconstructinganewmilkingmachineandwishesto
keepitsecretaslongaspossible.Hehashiddeninitdeepwithin
hisfarmandneedstobeabletogettothemachinewithoutbeing
detected.HemustmakeatotalofT(1<=T<=200)tripstothe
machineduringitsconstruction.Hehasasecrettunnelthathe
usesonlyforthereturntrips.
ThefarmcomprisesN(2<=N<=200)landmarks(numbered1..N)
connectedbyP(1<=P<=40,000)bidirectionaltrails(numbered
1..P)andwithapositivelengththatdoesnotexceed1,000,000.
Multipletrailsmightjoinapairoflandmarks.
Tominimizehischancesofdetection,FJknowshecannotuseany
trailonthefarmmorethanonceandthatheshouldtrytousethe
shortesttr