在我们学习数据结构的时候都曾经见过迷宫游戏,迷宫游戏的实现其实并不难,但是,我们在实现每一个算法的时候都应该想一想这个问题的每一个解。最近,博主已经开始重温数据结构啦,记得我们以前学习这里的时候,老师会用队列来实现迷宫最优解的寻找,氮素呢,博主就是这么可爱..
                            
                            
                                分类:
其他好文   时间:
2016-04-10 19:32:39   
                                阅读次数:
183
                             
                    
                        
                            
                            
                                优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主 ...
                            
                            
                                分类:
编程语言   时间:
2016-04-09 16:34:33   
                                阅读次数:
194
                             
                    
                        
                            
                            
                                适用: 要求在某约束条件下,求得由n个元素组成的全部解或最优解(解是个集合) 注意是:它同回溯法解决问题类似,关键的不是在于,这个算法解决的问题,解集合中的元素先后顺序是有影响的; 步骤: 1、把解集合的所有可选元素,整理为树状或图状结构 2、由于解集合元素的先后顺序有关。所以,如果,第m个元素选择 ...
                            
                            
                                分类:
其他好文   时间:
2016-04-08 21:53:02   
                                阅读次数:
215
                             
                    
                        
                            
                            
                                适用情景: 要求满足某些限制条件下,求得全部解或者最优解。 步骤: 把解集合,划分成树状或图状的空间;每一层的选择对应于解的一部分(如第n层对应于解得第n部分)。 如果某分支上,第n层仍然满足条件,那么继续遍历到第n+1层;否则,回溯到第n-1层,去其他树枝上遍历(这里节省了时间)。这里实际是深度优 ...
                            
                            
                                分类:
其他好文   时间:
2016-04-08 08:58:10   
                                阅读次数:
152
                             
                    
                        
                            
                            
                                用堆栈实现迷宫问题,二维数组表示迷宫:1表示墙壁,0表示可以走的路,只能横着走或竖着走不能斜着走,要求编程实现找到从左上角到右下角的路线//深度优先:有解就退出搜索(不一定是最优解)
#include<iostream>
#include<stdio.h>
usingnamespacestd;
#defineROW..
                            
                            
                                分类:
其他好文   时间:
2016-04-08 01:14:37   
                                阅读次数:
290
                             
                    
                        
                            
                            
                                    #include "stdafx.h" #include <iostream> using namespace std; const int L = 7; int RecurMatrixChain(int i,int j,int **s,int *p);//递归求最优解 void Traceback ...
                            
                            
                                分类:
编程语言   时间:
2016-04-04 22:48:46   
                                阅读次数:
295
                             
                    
                        
                            
                            
                                题目链接: https://vijos.org/p/1012 题目大意: 给n个坐标(n<=100 000),求直线距离最短是多少。数据较大用long long 或 double 题目思路: 【枚举】 正解貌似是分治,不过我一看就暴力枚举+剪枝了。 先按x y为第一、第二关键字排序。 设当前最优解为 ...
                            
                            
                                分类:
其他好文   时间:
2016-04-03 20:15:45   
                                阅读次数:
138
                             
                    
                        
                            
                            
                                    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 题意就是有n个数分成m段,求最大的和; dp[i][j]表示把 j 个数分成 i 段,选择第 j 个数的结果,而并不是当前的最优解, 那么要考虑的是第i个数的数是自己成一段还是和前面的成一段 所以 ...
                            
                            
                                分类:
其他好文   时间:
2016-04-03 14:32:09   
                                阅读次数:
211
                             
                    
                        
                            
                            
                                华信清明节放假,所以不用去上课,而我又不想出去,所以就用了一点时间去研究算法。
我今天开始看王晓华写的《算法的乐趣》,把它当做教材。
看到贪心算法,因为大一的时候C语言没学好,所以作者写的C实现代码不是看得很懂,但是基本思想还是能够掌握的。
接下来我总结一下我今天学到的贪心算法:
贪心算法是寻找最优解问题的常用方法。
基本思想是分三个步骤:
1.建立对问题精确描述的数学模型,包...
                            
                            
                                分类:
编程语言   时间:
2016-04-03 01:52:56   
                                阅读次数:
493
                             
                    
                        
                            
                            
                                一.动态规划中的几个点 1.状态(类比于函数),也就是确定要得出最优解最少需要多少个变量,需要确保的是保证变量的数目尽量少,而且得出的最优解正确 2.状态转移(类比于递归的理解):状态转移需要一个递推方程,状态的初值--递推的边界, 因为递归的速度很慢 ,所以我们就把递归变成for循环,可以提高效率 ...
                            
                            
                                分类:
其他好文   时间:
2016-04-02 12:12:18   
                                阅读次数:
158