因为n只有1000,再加上是2的k次幂的形式,所以深度不大。
很明显的迭代加深,加个A*剪枝就能秒出样例,700+ms,代码很短。
#include #include #include #include #include #include using namespace std; int deep,n; int v[1005]={1}; int h(int top) { int k=deep-top; int x=v[top]; while(k--) x<<=1; return x; } bool dfs(int top) { if(v[top-1]==n) return true; if(top-1>=deep||h(top-1)