题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1044
题意有点类似于红白机上玩过的吃豆子游戏,呵呵。在规定的时间内逃出迷宫,并带走丢在路上的宝石们,价值尽可能的大。
最直接的想法是以宝石为结点,DFS暴力搜索,这样首先需要求俩宝石的最短路径,用A*算法。
然后就TLE了……
然后剪枝吧,比如从A点出发,如d(AC) == d(AB) + d(BC),那么C点是已经搜索过,continue。并且用了贪心策略,按离当前点的距离远近排序待搜索的结点。
然后继续TLE……
然后反省,是不是我对自己写的A*算法太自信了,应该记录结点间的距离供以后查找。亦或是不是我的整个思路就是错的……
开始不自信了,看解题报告……
原来如此,思路没错,确实应该先纪录结点间的距离。
再次submit,然后WA……
又开始不自信了,难道把A*写错了