dfs回溯的注意事项
2016-03-19 10:16
246 查看
回溯可能是多个量回溯 别忘了 比如
上边需要回溯的有两个量 一个是vis 另外一个是temp 不过如果把dfs里面写成dfs(n+1,temp+abs(pos[i]-pos[j]))就不用回溯另外一个了 。
void dfs(int n,int temp) { if(n==10) {if(temp<min) min=temp;return;} if(temp>min) return; for(int i=1;i<=9;i++) if(!vis[i]) { int j; for(j=i+1;j<=10;j++) if(!vis[j]) break; temp+=abs(pos[i]-pos[j]); vis[i]=1; dfs(n+1,temp); temp-=abs(pos[i]-pos[j]); vis[i]=0; } }
上边需要回溯的有两个量 一个是vis 另外一个是temp 不过如果把dfs里面写成dfs(n+1,temp+abs(pos[i]-pos[j]))就不用回溯另外一个了 。
相关文章推荐
- mt7688 音频方案分析
- 动态规划入门之国王的金矿
- Java中构造函数重构+数组小练习
- 索尼PS VR游戏体验汇总 399美元起高端VR究竟值不值得买?
- java程序中比较常见的四种判断是否为空的性能优化比较
- 21.文件下载
- 【摘录+总结】Android动画之Tween动画 (渐变、缩放、位移、旋转)
- HttpClient使用详解
- 计算机网络常识
- 关于一些基础的Java问题的解答(五)
- easyUI接收后台的参数不正确导致报length no defined
- 计算机网络常识
- laravel 框架 开源的cms推荐
- Linux下为Node.js程序配置MySQL或Oracle数据库的方法
- 数据挖掘---Kmeans算法
- 数据挖掘---Kmeans算法
- 数据挖掘---Kmeans算法
- 数据挖掘---Kmeans算法
- 哈理工oj 1079 I can do it【贪心】
- 数据挖掘---Kmeans算法