零八年七月月赛D题解题报告
星期四, 七月 31st, 2008首先,我对这次月赛D题数据出现的一些小失误表示抱歉。D题是一个很经典的搜索题,是对一个noi题目加强后出的。原题为POJ1184,大家可以参考。
这题的经典之处就在于搜索得分成两个部分来完成,首先搜到所有状态的最小步数,然后直接算光标经过的地方经过“Up”,”Down”操作最少需要多少步就行了。说简单点就是只进行部分的搜索。
搜索部分其实就是对所有状态空间的一个遍历,BFS就行了。状态有[2^6][6][6!]种,三个分别是光标扫过的下标,光标所在的下标,和字符串的所有排列。这个明白了题目思路也就很明显了。
原题是在数字间变换,解决方法有几种,不分开考虑各种操作,都还有其他方法可以直接搜过,包括启发式搜索等。加强此题意在突出此解法的经典之处。
