C++
慌慌的江湖
这家伙很懒,还没有添加简介!
展开
-
《C++程序设计语言》学习笔记~第2部分:基本功能
第7章 指针、数组与引用 1.void*的含义是“指向未知类型对象的指针”(除了函数指针和指向类成员的指针)。 2.空指针nullptr,可赋给任意指针类型,但不能赋给内置类型。 3.原始字符串字面值常量,R"(ccc)"表示字符串ccc,转义字符不起作用 I. string s=R"(\w\\w)"; II. string s=R&quo原创 2018-11-14 22:39:46 · 445 阅读 · 0 评论 -
1、深度优先搜索DFS(Depth-First Search)
1.描述:深度优先搜索从某个状态开始,不断的转移直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直到找到最终的解。 2.特点:DFS遍历所有可以到达的状态,由此可以对所有的状态进行操作或者列举出所有状态。 3.实现:常采用递归函数。 4.例题一(挑程P30:部分和问题):给定整数a1,a2,…,an,判断是否可以从中选出若干数,使它们的和恰好为k。 5.例题二(挑程P32:...原创 2019-02-22 10:22:23 · 275 阅读 · 0 评论 -
2、宽度优先搜索BFS(Breadth-First Search)
1.描述:BFS总是先搜索距离初始状态近的状态,即开始状态->只需1次转移就可以到达的所有状态->只需2次转移就可以到达的所有状态->… 2.特点:BFS也可以遍历所有可到达的状态。由于按照距开始状态由近及远的顺序搜索,BFS可用于求最短路径、最少操作等问题。 3.实现:DFS(隐式地)利用了栈进行计算,而BFS则利用了队列。 4.例题一(迷宫的最短路径):NM的迷宫由通道和墙壁...原创 2019-02-25 19:30:02 · 270 阅读 · 0 评论 -
3、穷竭搜索
1.例题一(Smallest Difference,POJ 2718):给出0~9中的任意N个数字的增序排列,N不大于10且不小于2。将这N个数组合成两个数,要求这两个数不能以0开头,试求这两个数的差的绝对值最小的情况,输出此时差的绝对值?(next_permutation函数的使用) 2.例题二(BackwardDigitSums,POJ 3187):给出1~N的任意排列,按倒三角形式得到左肩右...原创 2019-02-27 11:38:40 · 173 阅读 · 0 评论 -
4、贪心法
1.例题一(硬币问题):有1/5/10/50/100/500元的硬币各Ci枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假定本题至少存在一种支付方案。(优先使用面值大的硬币) 2.例题二(区间调度问题):有N项工作,每项工作分别在Si时间开始在Ti时间结束。要求参与工作的时间段不能重复,那么最多能参与多少项工作呢?(在可选的工作中,每次都选取结束时间最早的工作) 3.例题三(字典序最小问题,...原创 2019-03-08 20:45:32 · 163 阅读 · 0 评论