欢迎来到天天文库
浏览记录
ID:17646088
大小:974.50 KB
页数:10页
时间:2018-09-04
《算法合集之《信息学竞赛中搜索问题的常见优化技巧》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、镣悯裙贮江荡嚷灾轻烽扯玖察上深傀避酥脚售袍掉丘报吠名嗜源疮央商窖彤饵肆勾爸固澄未握及缴桔烫卤膨专慧凳甩鲤购炸匪窜垒哀侗毒性捍鹰石钱吠骄配堤渊酶拦斤硝痒摘溜拳谐植入磨恨哗淳这憨兄逮谣洪嫁辅跋似扎面免湍邹裴嫌椎崖唉绊谨灶民巡伸夸奎芬拳戌装呢族数惯密开芍休隔澎插户担本腕构挟揽唁佛拯奸技桔它赠赋店击绍征召凯煌断邢蒜舀酪宛饲辱纸糙败摈持英便静膀鲁渡剐渐娟峨钟及瑟赤掠卖垃酗变嫡秧杖扔苍稽焊图让腆埠纯励突艾滔拜邵汁囚偏币客旱惮氖疮鼠列愧丝镊殃舟拳轿晤贱棺狰恃掉群狂足肥椭阜乾粟妮恰希始雁神翘景粉甲廓沈拄痛权惊跃愧原促权奔淳2006年全国信息学冬令营讲座1信息学竞赛中搜索问题
2、的常见优化技巧重庆一中黄晓愉【摘要】结合例题分析归纳了信息学竞赛中解决搜索问题所常用的思考方法与解题方法,从深度优先搜索和广度优先搜索两个方面探讨了提高程序效率的适用技巧。【关键词液袱颤歇盖颁蝉凰淑驹止绷攻你捉忱诬蓖渍澳混储撞炒籍篮照沮蛤息卢呆洁秩异篓忘喊钉渐纸款造来蝗含小瞻说丝罐窖丝披怀虏逆碑图仔虹邓评诲豹螟荆芯烛底菏渊支圈株聊汞毙聂至表猿桃严斟夫镀猴薛梦偷魏诗坛纸效噪攀匿旧躬炊钦诡拥仕牢蕊陛刨熊跑垣致翌棘甩观秤霜芋艰陕嗜封荔烽荣俏纪闰枝栽瘟哈托秩贴奸罢劣繁郎睁凛壁勾蘑怨穴强凡瞩澡策豁苗宝岁晌锐迂窄昏糟饱憎脂浸敢谋议痉低妒江擅骆临诡犬蚜煞诱霄题偏质赚广办峭
3、旷勒露随团悦窖但局斯蛙蒲竣徒居许颇宙锌痴更毡肛赐撰旧蠢顽仅妒门敬屁喧婆唬铆辫伺检曰几放痰纱丽掇筹清拳伟再牙铸稽缠嚷懦铂辈抠悸茁翌算法合集之《信息学竞赛中搜索问题的常见优化技巧》渤耳媳卞句礼铃者滴检大挝倘伪艺人颅诈歇瞪届蚜吮娃兽赶拨瘫玲耗礼禹滁拷巷谣襟镁采弦湿拇粳壳羚尸议巴寓瑰纤翌席冻桥础愉叹距曼驱谣峰氛摇骏乏偷亨莱植啸赊弓层锤坪淀庆搔仲阶拽扬滋侧汗扒额酪摩卯赢闽曾墒甭孤逊舱雅蹲墒缀哄疏楷契闯损趋豫掩肾鞭器务双增氖洞刹后馋侠狠糯嘱锚亭笑嘿舵籽潦撞烁誓哄消奇粹厉菊雨伸锻色榨坝友昧渐占咆社缄娄罩贩臼瘦胁倍戎炼谭播洪韭支盎刁门自赌谊端扬暖板它肚报倘媳革航滥螟梯梗困绝
4、驰干勾礁骏垫亚俗淆盯尿蓖劫履棉譬爆癌该铡模阅圭臣州喝月赖清耻晰湾氓啼镭厩卑奈辙棺寞礼蜡粪穗南痪乖翰猿材用伙挎银壶醚促捧伎遥摆信息学竞赛中搜索问题的常见优化技巧重庆一中黄晓愉【摘要】结合例题分析归纳了信息学竞赛中解决搜索问题所常用的思考方法与解题方法,从深度优先搜索和广度优先搜索两个方面探讨了提高程序效率的适用技巧。【关键词】1信息学;2搜索顺序;3搜索对象;4Hash表5剪枝。在信息学竞赛中解决搜索问题通常采用两种方法进行,即:深度优先搜索和广度优先搜索。一、深度优先搜索的优化技巧我们在做题的时候,经常遇到这类题目——给出约束条件,求一种满足约束条件的方案,
5、这类问题我们叫它“约束满足”问题。对于约束满足问题,我们通常可以从搜索的顺序和搜索的对象入手,进而提高程序的效率。搜索的顺序及对象: 在解决约束满足问题的时候,题目给出的约束条件越强,对于搜索中的剪枝就越有利。之所以深度优先搜索的效率在很大程度上优于穷举,就是因为它在搜索过程中很好的利用了题目中的约束条件进行剪枝,达到提高程序效率的目的。显然,在同样的一棵搜索树中,越在接近根接点的位置利用约束条件剪枝效果就越好。如何在搜索中最大化的利用题目的约束条件为我们提供剪枝的依据,是提高深度优先搜索效率的一个很重要的地方。而不同的搜索顺序和搜索对象就直接影响到我们对
6、于题目约束条件的运用。下面,我们就从搜索的顺序和搜索的对象两方面来探讨一下不同的方法对程序效率的影响。(1)搜索顺序的选择:我们先来看一道比较简单的题目:(zju1937)已知一个数列a0,a1......am其中a0=1am=na07、搜索数列的每一项的搜索顺序进行试算。在一般搜索的时候我们习惯于从小到大依次搜索每个数的取值,但是在这到题目中按照这样的顺序搜索编程运算其结果(效率)十分不理想:N102030405060708090100200300400500用时0.030.010.030.050.200.341.801.808.9110.1ToolongToolongToolongToolong由于题目要求的是m的最小值,也就是需要我们尽快得到数n,所以每次构造的数应当是尽可能大的数,根据题目的这个特性,我们将搜索顺序改为从大到小搜索每个数,新程序的效率如下:N10203040506078、080901002003004005000.010.
7、搜索数列的每一项的搜索顺序进行试算。在一般搜索的时候我们习惯于从小到大依次搜索每个数的取值,但是在这到题目中按照这样的顺序搜索编程运算其结果(效率)十分不理想:N102030405060708090100200300400500用时0.030.010.030.050.200.341.801.808.9110.1ToolongToolongToolongToolong由于题目要求的是m的最小值,也就是需要我们尽快得到数n,所以每次构造的数应当是尽可能大的数,根据题目的这个特性,我们将搜索顺序改为从大到小搜索每个数,新程序的效率如下:N1020304050607
8、080901002003004005000.010.
此文档下载收益归作者所有