我估价函数写成这样:
for(int i=0;i<3;++i)for(int j=0;j<3;++j)ret+=b.a[i][j]!=st.a[i][j]; return ret-1;
因为考虑到 A* 算法估价函数必须小于等于实际距离,而 retretret 不一定满足,但 ret−1ret-1ret−1 就一定满足了。
可是这样全 WA,甚至 retretret 不减一都能 979797 分……
有没有大神给我解答一下……