今天上午开始写姜神的搜索题.
第一道,经典八数码,重新复习康托展开与BFS.代码写得太弱,外加对题理解不充分,调了一上午的码.
第二题,八数码变种,数据更水,把握住翻转的扩展规律即可.
第三题,还在施工
第四题,一开始DFS暴力,TLE掉;后来开始用DFS记忆化搜索,失败;接着尝试BFS+DP,TLE掉.最后在网上看了题解,利用DP解决.
在DP的过程中要留意边界.另外状态转移的时候很容易写出模模糊糊的错误转移.在这题中,先处理好一排或一列,在逐层或逐列转移,可以避免重复计算导致的超时.
第四题另有一解,可用二分的方法来尝试在起点的血量,在用DFS去跑,能到达终点的,令R = mid;无法到达的L = mid ,直到出现确切的值.