首页 技术 正文
技术 2022年11月14日
0 收藏 310 点赞 3,922 浏览 1287 个字

CSP2019知识点整理

也算是接下来二十天的复习计划吧

仅止于联赛难度左右

基础算法

  • 字符串

    • char[]

      • cstring
      • memset()
      • 输入无&
      • gets(), fgets(stdin, ,);
      • strcmp, strcpy, strcat
    • string

      • string
      • cin, getline(cin,s)

      ios::sync_with_stdio(false); – > 只能用cin

    • 子串匹配

      • 暴力匹配
      • hash哈希
      • trie树 字典树
      • kmp
      • AC自动机 (trie树上做kmp)
    • 回文串

      • 暴力匹配 n^2
      • manacher 马拉车 O(n)
  • 数论

    • gcd() 求最大公约数 / 最小公倍数 辗转相除法
    • 快速幂 任意一个整数转换为 2^a+2^b+2^c
    • 求质数
      • 普通
      • 素数筛
        • 埃氏筛法
        • O(n)欧拉筛
    • 乘法逆元
      • 用一个递推式 求一个结果
      • 题目要求取模
      • 递推式里有除法运算 不能直接在每一步取模
    • 排列组合
      • 求组合数 C(n,m) = n! / m!(n-m)!
      • 组合数可以用递推 (杨辉三角形)
    • 离散化
    • 分治
    • 扩展欧几里得
    • 矩阵乘法
    • 进制转换
    • 位运算
  • 排序算法

    • 选择 冒泡 排序
    • 快速排序 (不稳定)
    • 归并排序 逆序对
    • 桶排序(去重)
    • 重载运算符
  • STL

    • string
    • queue
    • deque (双端队列)
    • stack
    • priority_queue
    • map (映射)stl的哈希表, 需要重载运算符号
      • 每次操作O(logn)
    • set 集合,会去重
    • vector
    • bitset
      • bool vis[] = true/false. 1 byte = 8 bits
      • 只用一个bit储存1/0
    • lower_bound(), upper_bound(),
    • sort
    • unique
      • 只能在排好序,升序的序列用
      • 会把所有重复的元素,移到最后去
      • ==,cmp
  • 高精度

搜索

  • 深度优先 (可行性问题)

    • 迭代搜索 (深度/求步数)
    • 记忆化搜索
    • 剪枝 / 各种黑暗剪枝 (套广搜来剪枝)
    • 启发式搜索
    • A* / IDA
  • 广度优先 (求步数)
    • spfa
    • 分层图

## 暴力算法

​ – 枚举

  • 模拟
  • 随机化

递归/递推

  • 一维递推

  • 二维递推

  • 写暴力搜索,打表,找规律

  • 矩阵快速幂 优化

贪心算法

二分算法

动态规划

  • 最长不下降子序列

    • 拦截导弹 O(n ^2 )
    • O(n log n )算法*
  • 背包问题
    • 背包九讲
  • 普通DP
    • 递推比较像
    • 比较复杂
    • -> 先暴搜
    • -> 找规律 注意各类参数 1-i i-n
  • 状压DP
  • 树形DP

图论

  • 度 欧拉回路
  • 拓扑排序(可能跟DP结合)
  • 最短路算法
    • floyed 暴力
    • dijkstra
      • pq优先队列的优化(推荐)
    • spfa 判负环(求最大路>判正环)
  • 强连通分量
    • korasaju

      • -> 正dfs + 反dfs
    • tarjan
      • low, dfn
  • 二分图匹配 (求最大匹配)
    • 匈牙利算法
  • 树上算法
    • 树的三种遍历方式
    • 最小生成树
    • LCA 最近公共祖先
      • tarjan
      • 倍增
    • 树链剖分 -> 区间修改/查询

数据结构

    • 单调栈
  • 队列

    • 单调队列
  • 链表

    • 图论 -> 邻接链表
  • 并查集

  • 左偏树

  • RMQ

    • 莫队(算法)

    • 前缀和

    • 差分

    • 树状数组

    • ST表

    • 线段树

      • lazy_tag
      • 可持久化线段树
        • 主席树

签到题100分拿满

DP/递推 -> 暴力(模拟,搜索,贪心) 20 ~ 50 , 打表++

码农搜索题 –> 50+

数论相关 –> 先算, 暴力

图论相关–>

  • 树上

    • 倍增
    • 树链剖分
  • 图上
    • 遍历
    • 拓扑序
    • 图上获得的数据再DP

数据结构 暴力 30-50, 正解可以多花时间/换角度

二分 / 贪心

贪心/二分/搜索/dp递推

NOIP 2015 – 2018

存算法/数据结构模板(复习不熟悉的,写不出来的算法)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,494
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295