算法笔记


 

基础语法

基本模板

 

 

输入输出

数据类型

 

数学函数

  1. Factorial ( 阶乘 )

  1. GCD,LCM ( 辗转相除法 )

 


 

STL容器

迭代器

algorithm

string

vector ( 动态数组 )

stack (栈)

queue (队列)

list (双向链表)

priority_queue (优先队列)

set (集合)

map (键值对)


 

基础算法

模拟/枚举

严格遵循题目规则,不重不漏地穷举所有可能状态

  1. 建表查询: 将状态抽象化, 对于日期(仅12个固定值), 方位(上,下,左,右)等可枚举的量,直接建表

  2. 边界划分: 保证所有过程都在问题之内

贪心

鼠目寸光: 不从整体最优上加以考虑,而是始终做出在当前看来最好的选择

backtrack ( 回溯 )

核心思想是从一个初始状态出发,暴力搜索所有可能的解决方案,当遇到正确的解则将其记录,直到找到解或者尝试了所有可能的选择都无法找到解为止. 本质上是穷举, 效率并不高, 一般为指数级别, 可借助剪枝优化来提高效率.

Dynamic Programming (动态规划)

将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算, 旧状态+决策=新状态