摘要: 调用函数时,主调的函数所拥有的局部变量等信息需要存储在特定的内存区域.这个区域被称作栈内存区.另一方面,利用new或者malloc进行分配的内存区域被称为堆内存. 栈内存在程序启动时被统一分配,此后不能再扩大.由于这一区域有上限,所以函数的递归深度也有上限.虽然与函数中定义的局部变量的数目有关,不过 阅读全文
posted @ 2016-02-27 21:31 Vmetrio 阅读(220) 评论(0) 推荐(0)
摘要: SLT: C++的STL有一个函数可以方便地生成全排列,这就是next_permutation 在C++ Reference中查看了一下next_permutation的函数声明: #include <algorithm>bool next_permutation( iterator start, 阅读全文
posted @ 2016-02-27 20:44 Vmetrio 阅读(333) 评论(0) 推荐(0)
摘要: N*M的迷宫,从起点到终点,求最短距离 宽度优先搜索按照距开始状态由近及远的顺序进行搜索,因此可以很容易的用来求最短路径,最少操作之类问题的答案. (可以构造成pair或者编码成int来表达状态) 当状态更加复杂时,就需要封装成一个类来表示状态了. 虽然到达终点时就会停止搜索,可如果继续下去直到队列 阅读全文
posted @ 2016-02-27 16:18 Vmetrio 阅读(3518) 评论(0) 推荐(0)
摘要: N*M的园子,雨后积起了水.八连通的积水背认为是连接在一起的.请求出园子里总共有多少水洼? dfs(Depth-First Search) 八个方向的简单搜索.... 深度优先搜索从最开始的状态出发,遍历所有可以到达的状态.由此可以对所有的状态进行操作,或者列举出所有的状态. 1 int N,M; 阅读全文
posted @ 2016-02-27 14:58 Vmetrio 阅读(377) 评论(0) 推荐(0)
摘要: 输入: n=4 a={1,2,4,7} k=13 输出: YES 输入: n=4 a={1,2,4,7} k=13 输出: NO 选出若干数,使它们的和恰好为k 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #inc 阅读全文
posted @ 2016-02-27 12:34 Vmetrio 阅读(488) 评论(0) 推荐(0)
摘要: STL: 队列中pop完成的不是取出最顶端的元素,而是取出最低端的元素.也就是说最初放入的元素能够最先被取出(这种行为被叫做FIFO:First In First Out,即先进先出). queue:front 是用来访问最底端数据的函数. 1 #include <queue> 2 #include 阅读全文
posted @ 2016-02-27 12:09 Vmetrio 阅读(209) 评论(0) 推荐(0)
摘要: STL: pop:完成的仅仅是移除最顶端的数据.如果访问最顶端的数据,需要使用top函数(这个操作通常也被称为peek). 1 #include <stack> 2 #include <cstdio> 3 uisng namespace std; 4 5 int main() 6 { 7 stack 阅读全文
posted @ 2016-02-27 12:05 Vmetrio 阅读(161) 评论(0) 推荐(0)