算法
MJ-LEE
热爱代码,心怀梦想
展开
-
回溯算法—N皇后问题
回溯算法基本思想: 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 八皇后问题: 是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互原创 2017-03-22 21:07:46 · 566 阅读 · 0 评论 -
分支限界法-从1到36,最少要几步?
分支限界法基本思想: 分支限界法以广度优先或以最小消耗优先的方式搜索解空间树。 基本策略为: 1.先分支:在扩展结点处,生成其所有的子结点。 2.再限界:根据题目要求设置限界函数,根据函数值,选择所有子结点中最有利的结点作为下一个扩展结点。 经过两步使搜索朝着解空间树上最优的分支推进,以便尽快找出最优解。问题描述: 输入m,n。假设当前有三种操作:加1,乘2,平方;问从m变换至n最少需要原创 2017-04-11 21:06:39 · 952 阅读 · 0 评论 -
穷举法-有趣的数字(腾讯2017实习生编程题)
问题分析: 1.暴力穷举出所有差值; 2.每当算出一个差值,进行比较,如符合要求则相应记录,如不符合,抛弃;代码展示:#include <iostream>int main(){ int n, temp; int A[100], Max[2] = {0}, Min[2] = {0}; std::cin >> n; for (int i(0); i < n; ++i原创 2017-04-17 19:26:19 · 462 阅读 · 0 评论 -
DP动态规划-电路布线问题
动态规划算法基本思想: 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。电路布线问题描述 : 在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i)) 将上端接线柱i与下端接线柱π(i)相连,如下图。其中,π(原创 2017-04-06 19:58:43 · 1000 阅读 · 1 评论 -
分支限界法-最少步数走出迷宫
问题描述: 用户从屏幕输入m,n表示一个m*n的迷宫,0表示空地,1表示墙,给定起点的行,列;给定终点的行,列;输出最少到达目标的步数; 示例输入: 4 4 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 2 2 样例输出: 5问题分析: 1.根据分支限界法基本思想(详见上篇分支限界博客) (1)分支:当前位置每次有四种可能的走法上下左右,可分四个子原创 2017-04-20 18:12:47 · 2234 阅读 · 0 评论