NOIP 2018 提高组复赛 知识点清单及常用方法

一 基础算法:

1、栈、单调栈、队列、单调队列

2、STL

3、离散化

4、求逆元

二、初级算法

模拟、枚举、递归、递推、贪心、分治、搜索、动态规划

三、高级算法

1、数据结构:并查集、树状数组

2、字符串:hash、trie树

3、图论:Kruskal、floyd、dijkstra、SPFA、拓扑排序、差分约束、分层图、朴素lca、在线LCA、离线LCA,tarjan、点、边双

4、数论:约数和、约数个数、质数、exgcd、CRT,同余方程组、欧拉函数、欧拉定理、费马小定理、组合数取模、十进制快速幂,积性函数线性筛、置换

5、动态规划:区间DP、树形DP、状压DP、概率DP、数位DP、背包DP、普通DP

 

常用方法:

一、数据结构

①并查集 (1):判断图的连通性

                (2):最小生成树/最大生成树

                (3):对具有相同性质的dong xi 进行分类

                (4):如果想要知道  对于一个全图 删点之后  ,查询连通性,我们可以反过来搞,将删点转为加点,再查询连通性

                (5):在“回溯”的时候进行统计,->带权并查集

                (6):注意 数组的大小,(注意 是否 有离散化 <->数组大小)

                (7):如果有两类元素,需要对应维护,可以将数组开大,前半段表示第一类元素,后半段表示第二类元素,前后进    行“连边”。->仿佛说的不是很明白

                (8):在以i为最小/大/...值的情况下,枚举j,寻找答案,注意 剪枝!

                (9):注意 序列与图的玄学联系与转换     序列<->图       序列<->Kruskal

 

②树状数组 (1):单点修改,区间查询

                   (2):区间修改,单点查询(差分)

                   (3):区间修改,区间查询

                   (4):区间开放,区间求和-->lalala

 

二、字符串

①hash (1):单模hash

             (2):双模hash

             (3):挂链hash(反正我NOIP不会用它的

             (4):注意一些hash的常规操作就好,去我的博客找吧!

             (5):map/unordered_map(C++11)

②trie树 (1):注意数组的大小

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值