poj 3134 IDA*

2014-11-24 03:20:54 · 作者: · 浏览: 0

因为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)