2018年4月3日
摘要: /* P34: 迷宫的最短路径 核心:用队列实现宽度优先搜索,队列里面放的都是将要走的位置, 队列pop出来的位置是当前要走的位置 队列push进去的位置是周围所有可走但还未走的位置 到终点或队列为空时退出。分别表示可达和不可达. 技巧:可以用大小相同的flag[][]来标记一些信息。这里我用-1表示未走... 阅读全文
posted @ 2018-04-03 09:17 jkn1234 阅读(263) 评论(0) 推荐(0) 编辑
摘要: “递归”是实现深度优先搜索的最好的方式。定义好规则然后就这样递归的循环下去直到走到终点 来自 <https://zh.wikipedia.org/wiki/%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88%E6%90%9C%E7%B4%A2> 阅读全文
posted @ 2018-04-03 09:03 jkn1234 阅读(204) 评论(0) 推荐(0) 编辑
摘要: /* P30页:部分和问题 核心:用递归实现深度优先搜索是很方便的事情 问题:n个数中选出任意个数使得和为k, 找到返回find,灭有返回not find */ #include #include #include using namespace std; const int NUM = 1010; int n, k; int a[NUM]; vect... 阅读全文
posted @ 2018-04-03 08:40 jkn1234 阅读(138) 评论(0) 推荐(0) 编辑
摘要: /* P20页:难度增加的抽签问题 核心:处理大数据时,二分查找算法lgn的时间复杂度是很省时间的 问题:n个签,有放回抽取4次,求和是否有可能为m,n #include #include #include using namespace std; const int Max = 1010; int n, m; int k[Max]; int main(voi... 阅读全文
posted @ 2018-04-03 00:03 jkn1234 阅读(182) 评论(0) 推荐(0) 编辑