STL标准库

Visual Studio 2017
以及不确定oj系统的c++版本支持状况 据说c++11是ok的
牢记万能头文件 #include

数据结构

  • 基本
    • pair
  • O(n):
    • vector
    • list
    • queue
    • stack
    • deque
  • O(nlgn)

    • map
    • unordered_map
    • set
    • multiset
    • priority_queue(自定义比较函数)

      一般算法

  • 数学计算

    • accumulate
    • power
    • max
    • min
  • 基础数据处理
    • swap
    • iter_swap
    • reverse
    • itoa
    • atoi
  • 查找:
    • find
    • search
    • binary_search
    • lower_bound
    • upper_bound
    • nth_element
    • max_element
    • min_element
  • 排序
    • sort
  • 字符串string

    • 正则regex
    • substr
    • find

      一些专题

  • 二分查找

  • 分治
    • partition
    • merge
  • 贪心
    • 最早截止期优先
  • 动态规划
    • 最大子矩阵
    • 最长上升子序列的O(n2)算法和O(nlgn)算法
  • 滑动窗口/双指针
  • 位运算
    • a^(~a) 去掉最后的1
    • 状压dp枚举所有子集 for(int s=a;s!=0;s=(s-1)&a)
    • 最短路径算法
      • 单源点最短路径
        • dijkstra的优先队列优化(正权)
        • spfa(负权,可检测负环)
      • 多源点最短路径
        • floyed算法 O(n3)
    • 最小生成树
      • prim+优先队列
      • Kruskal
    • 连通性问题
      • tarjan求强连通分量
    • 拓扑排序——可求有无回路
    • 二叉树
    • haffman树
    • 字典树
    • 线段树/树状数组
  • 搜索
    • 递归与回溯
      • 八皇后
    • 极大极小算法
    • dfs
    • bfs
  • 高精度
    • 加减乘除
  • 字符串
    • 正则表达式
  • 数学
    • 最大公约数,最小公倍数
    • 摩尔投票求众数
    • 两个堆求数据流中的中位数

Some interesting problem