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
- korasaju
- 二分图匹配 (求最大匹配)
- 匈牙利算法
- 树上算法
- 树的三种遍历方式
- 最小生成树
- LCA 最近公共祖先
- tarjan
- 倍增
- 树链剖分 -> 区间修改/查询
数据结构
栈
- 单调栈
队列
- 单调队列
链表
- 图论 -> 邻接链表
并查集
左偏树
RMQ
莫队(算法)
前缀和
差分
树状数组
ST表
线段树
- lazy_tag
- 可持久化线段树
- 主席树
签到题100分拿满
DP/递推 -> 暴力(模拟,搜索,贪心) 20 ~ 50 , 打表++
码农搜索题 --> 50+
数论相关 --> 先算, 暴力
图论相关-->
- 树上
- 倍增
- 树链剖分
- 图上
- 遍历
- 拓扑序
- 图上获得的数据再DP
数据结构 暴力 30-50, 正解可以多花时间/换角度
二分 / 贪心
贪心/二分/搜索/dp递推
NOIP 2015 - 2018
存算法/数据结构模板(复习不熟悉的,写不出来的算法)
CSP2019知识点整理的更多相关文章
- ACM个人零散知识点整理
ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...
- Android 零散知识点整理
Android 零散知识点整理 为什么Android的更新试图操作必须在主线程中进行? 这是因为Android系统中的视图组件并不是线程安全的.通常应该让主线程负责创建.显示和更新UI,启动子线程,停 ...
- vue前端面试题知识点整理
vue前端面试题知识点整理 1. 说一下Vue的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫 ...
- kafka知识点整理总结
kafka知识点整理总结 只不过是敷衍 2017-11-22 21:39:59 kafka知识点整理总结,以备不时之需. 为什么要使用消息系统: 解耦 并行 异步通信:想向队列中放入多少消息就放多少, ...
- JSP页面开发知识点整理
刚学JSP页面开发,把知识点整理一下. ----------------------------------------------------------------------- JSP语法htt ...
- JS知识点整理(二)
前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...
- css入门知识点整理
css入门知识点整理 不要嘲笑我这个蒟蒻..例子来源:w3school css其实就分为两个东西,一个是选择器,另外一个是声明.声明定义了某个对象的属性的值,这都是html的内容.重点要关注的是选择器 ...
- activity生命周期知识点整理
activity生命周期知识点整理 Activity: 是一个应用组件,用户可与其提供的屏幕进行交互.窗口通常会充满屏幕,但也可以小于屏幕并浮动在其他窗口之上. 一个activity的什么周期: 启动 ...
- 【Android 面试基础知识点整理】
针对Android面试中常见的一些知识点整理,Max 仅仅是个搬运工.感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章.对于当中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正 ...
随机推荐
- 记一次arch滚挂后,更换lts内核
背景 因为arch的滚动升级模式,每天pacman -Syu已经是一种习惯了(虽然我是使用yay的),升级过程中会连内核一起升级,但不会立刻生效,通常要等到下次重启时才会生效. 因为此前使用的是有一点 ...
- 浅谈个人对客户端JavaScript同步、异步、执行顺序等概念的理解
一.同步和异步的概念. 同步:即按代码的顺序执行任务. 在下列代码中,按照同步概念,则是先打印1后打印2. console.log(1); console.log(2); 异步:即执行一个任务的同时执 ...
- ActiveMQ学习总结------实战操作(上)02
相信大家通过上一篇博文已经对ActiveMQ有了一个大致的概念了, 那么本篇博文将带领大家一步一步去实战操作我们的ActiveMQ 本篇主要内容: 1.ActiveMQ术语及API介绍 2.Activ ...
- 手把手教你安装Eclipse最新版本的详细教程 - 大佬的鸡肋,菜鸟的盛宴(非常详细,非常实用)
简介 首先声明此篇文章主要是针对测试菜鸟或者刚刚入门的小伙们或者童鞋们,大佬就没有必要往下看了. 写这篇文章的由来是因为后边要用这个工具,但是由于某些原因有部分小伙伴和童鞋们可能不会安装此工具,为了方 ...
- ELK日志分析系统(4)-elasticsearch数据存储
1. 概述 logstash把格式化的数据发送到elasticsearch以后,elasticsearch负责存储搜索日志数据 elasticsearch的搜索接口还是很强大的,这边不详细展开,因为k ...
- eclipse中Tomcat version 9.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5, 6, 7, and 8 Web modules
eclipse中导入了一个别人的项目,运行时提示没有可以使用的服务器,如下: 查看了下项目属性设置中的服务器,还是提示没有可用服务器: 尝试对部署在已有服务器下的项目Add and Remove... ...
- 视频作品《springboot基础篇》上线了
1.场景描述 第一个视频作品出炉了,<springboot基础篇>上线了,有需要的朋友可以直接点击链接观看.(如需购买,请通过本文链接购买) 2. 课程内容 课程地址:https://ed ...
- A-05 前向选择法和前向梯度法
目录 前向选择法和前向梯度法 一.前向选择法 1.1 余弦相似度求投影 1.2 举例 1.3 前向选择法优缺点 1.3.1 优点 1.3.2 缺点 二.前向梯度法 2.1 举例 2.2 前向梯度法优缺 ...
- python编程基础之十七
字符串:str1 = '123' str2 ="123" str3 = """123""" str4 = '''123' ...
- Django2.1.3 urls.py path模块配置
learning_log/urls.py learning_logs/urls.py django2.0和1.x的区别是非常明显的,2.0开始使用path和re_path代替原来的url,而且用法有了 ...