讲稿大家好,我是来自福州一中的肖汉骏。今天带来的论文题目是《歧路修远,上下求索——例谈信息学竞赛分析中的“深”与“广”》。人们往往用“深”与”广“来形容海洋,但另一方面,人类的脑海却比任何一个大洋都来得深邃、来得广阔。作为思维能力充分展示的舞台,“深”与“广”在信息学竞赛中又有什么特殊含义呢?在解题实践中又如何做到”深“与”广“呢?本文将和大家一同探讨这些问题。问题分析中的“深”,有这么几层意思:一是层次性。层次方面的观察就是要抓住问题的来龙去脉,从低维的、条件简化的情况来考察问题。再由浅入深,分析问题在高维的、条件复杂的情况下产生的变化,以求突破。二是连续性。分析问题的过程往往是漫长而坎坷的。倘若想到哪里就分析到哪里,思维就容易混乱。反之,若能沿着确定的方向步步深入,充分利用每一步分析的结果,就容易挖掘出一些有用的东西来。三是注意要素之间的关系。信息学问题并不是要素的简单相加,要素之间的相互关系也是客观存在的,而且更为本质和深刻。要素间诸如单调性、周期性等等关系,往往可以成为解题的突破口。而问题分析中的“广”,内涵就更为丰富:一是开阔的眼界。在考场的仓促时间内,很多问题要获得完美的解决是困难的,甚至是不可能的。这就需要我们发挥想象力,运用各种策略解决问题。二是广阔的思路。一个相同的问题,从不同角度看往往有不同结果。如果能把这些结果综合起来,就能较为全面地理解问题。一些隐蔽的信息在各个方向的探测下,也就无所遁形了。三是丰富的分析手段。分析手段是思维的利器,能抓出问题的本质所在。若能掌握各种分析手段,就似精通了十八般兵器的武林高手,“谈笑间,问题灰飞烟灭”。下面,以一道题为例,谈谈如何在问题分析中真正做到“深”与“广”。这道题的大意是:有N篇文章,每篇文章有一个阅读时间Ti,价值Vi.读一篇文章的代价定义为读完这篇文章的时刻乘上它的价值。求一个文章的阅读顺序,使得总代价最小。另外,有一些文章的作者是相同的,这些文章必须按照作者写文章的先后顺序阅读。这个问题要求的是一个最佳的阅读顺序,使得总代价最小。但又附加了一定限制,即同一作者所写的文章要按时间顺序阅读。直接考虑问题本身似乎不容易找到很好的方向,所以我们不妨先尝试弱化条件,由浅入深地解决原问题。我们尝试去除作者因素,考虑这个特殊情况下问题的解。问题要我们求一个最优序列。显然,最优序列不是胡乱排列的,必然有某种因素使得它成为最优。而最优序列的特殊之处就在于:经过任意改变后,得到的结果都不比原序列优。在序列中最简单的改变莫过于交换相邻元素了。我们就照着这个思路进行深入分析:考察相邻的两本书,设它们的阅读时间为T1,T2,价值为V1,V2。如图所示,交换这两本书的阅读顺序后,第一本书的阅读完成时间推迟了T2,第二本书则提前了T1。所以,总代价的变化为T2V1-T1V2。对于最优序列,总代价的变化一定大于0,即T2V1T1V2,整理得V1/T1V2/T2。相邻两项有这个关系,那么,整个序列不就是按照Vi/Ti从大到小的顺序排列么?至此,特殊情况已被轻松解决,时间复杂度为O(NlogN)。回到一般情况,我们该如何处理作者因素对阅读顺序的影响?仍然应用从特殊到一般的思想展开分析。在所有一般情况中,只有两个作者的情况是最特殊的,而在所有两个作者的情况中,某位作者只写了一篇文章的情况又最为特殊。我们不妨来考察一下这篇独立文章应何时阅读。根据刚才的分析,最优序列中相邻的可交换元素满足关系:V1/T1V2/T2也即,独立文章的比值要小于前面的,大于后面的。单纯从数学推演的角度出发,满足上式的位置可能有很多,没有好的性质能够加以利用。而二元组比值的形式,不禁促使我们联想到直线的斜率。这里,不妨尝试一下,用广泛的分析手段解决问题。我们将每篇文章看作一个向量(Vi,Ti),则Vi/Ti就是斜率。刚才的数学结论在图形中就表示为,独立文章的斜率要介于前后之间。那么,独立文章的插入位置在图形中就可以形象地表示为“凸点”,如图所示:当然,只注意问题一个方面的性质是有悖于“广”的要求的。注意那些不可插入位置,它们在图形中表示为“凹点”。容易用反证法证明,凹点是不能被新的文章插入的。也就是说,我们可以把形成凹点的两个向量合并,来去除凹点。而什么图形不包含凹点呢?是的,就是凸包!可以预感,我们离最终的答案仅仅有一步之遥。稍加整理,容易得出以下算法:分别处理每一个作者,求出文章形成的凸包。则该作者所写的文章被凸包上的点划分为若干段。而后把所有文章段按斜率降序排序,即为所求的最优序列。回顾这道题的解决过程:我们先去除了限制条件,从特殊情况着眼,得出了最优序列相邻元素之间的关系。在一般情况中,我们又选取了最为特殊的两作者情况讨论。随后又运用了数形结合的分析方法,从正反两个方面考察了凸点和凹点。最后联想到凸包,一气呵成地解决问题。可以看到,问题解决过程中的每一步,都或多或少地和“深”和“广”有所联系。在平常的解题实践中,我们往往依靠经验、不自觉地使用各种分析方法。然而效果时好时坏,难以把握。这正说明了零碎的经验,是不能代替系统的理论的。若能在分析过程中遵循一定的规则,做到有理、有序地分析,就能避免凭借经验带来的不稳定性。另外,解题的成功并不是问题的结束。在我的论文中还叙述了如何将问题在“深”与“广”的方向延伸、拓展,从而提高分析能力。“磨刀不误砍柴功”,若能在解题过程中做到“谋定而后动”,坚持良好的分析习惯;在解题成功后又有意识地将问题向“深”、“广”延伸,比较不同层次、不同角度的解法,“知其然知其所以然”。相信,假以时日,我们的思维能力、分析能力就会有很大的进步,真正做到奥林匹克竞赛所追求的,”在智力上有所发展,在能力上有所提高“。我的演讲到此结束,欢迎大家提问。