OI知识汇总

以作者的水平为准



基础算法:枚举——>倍增

     差分(前缀和)——>二维

     贪心

     分治:归并排序(逆序对)

        二分答案

        二分查找

     快速排序——>离散化

     递归/递推



搜索:深搜(所有方案),宽搜(最优解)

   DFS优化:迭代

        最优性剪枝/可行性剪枝/搜索顺序

        记忆化搜索

        折半搜索

        A*/IDA*

   BFS优化:双向BFS

        判重(康托展开)

        优先队列搜索



DP:线性DP(LIS/LCS)  O(nlogn)算法

   区间DP

   树形DP

   背包类DP(01背包,完全背包,多重背包)

   数位DP

   DP优化:排除冗余状态

        状态压缩

        单调队列/数据结构

        决策单调性

        斜率优化



数据结构:队列/栈

     链表(hash表)

     ST表

     并查集

     二叉堆(可并堆)

     树状数组(求逆序对)

     线段树:动态开点

         线段树合并

         可持久化

     平衡树(区间操作):Splay

              fhq_treap

     LCT

     分块(莫队及其扩展)

     主席树(静态/动态)

     树套树(线段树+平衡树)



字符串算法:字符串hash

      KMP

      Trie——>可持久化/01 Trie

      AC自动机



数论:质数筛(欧氏筛/线性筛)

   分解质因数(唯一分解定理)

   欧拉函数(单个/线性筛)——>欧拉降幂

   Exgcd拓展欧几里得算法

   乘法逆元:拓欧

        费马小定理

        线性顺推逆元

        线性逆推阶乘逆元

   中国剩余定理CRT/ExCRT

   BSGS算法/ExBSGS算法

   组合计数(Lucas定理)

   矩阵快速幂(加速递推)

   高斯消元(高斯-约旦消元)

   线性基

   Miller_Rabbin

   FFT/NTT



树论:树的直径/重心(点分治)

    树链剖分

    LCA:树剖

       树上倍增

       欧拉环游序

    树上差分

    基环树



图论:拓扑排序 O(nlogn)

   最小生成树:Prim

         Kruskal(Kruskal重构树)

   最短路:Heap+dijkstra

       SPFA(SLF/LLL)——>判负环

       Floyd——>传递闭包

   图的连通性:Tarjan求强连通分量——>2-SAT

         割边/割点

         点双连通分量/边双连通分量

   二分图

   网络流



其他:结论题emm……

   尺取法

   悬线法

原文地址:https://www.cnblogs.com/soledadstar/p/11594926.html

时间: 2024-10-11 12:36:12

OI知识汇总的相关文章

【转】ACM博弈知识汇总

博弈知识汇总 转自:http://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取胜. (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.

JavaScript正則表達式知识汇总

Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

Delphi基础知识汇总

☆Delphi基础数据类型 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 2147483647 4 有符号32位 Cardinal 0 .. 4294967295 4 无符号32位 Shortint -128 .. 127 1 有符号8位 Smallint -32768 .. 32767 2 有符号16位 Longint -2147483648 .. 2147483647 4 有符号32位 Int64 -263 .. 263 8 有符号64位 Byt

动态规划 知识汇总

 Dp状态设计与方程总结 不完全状态记录 <1>青蛙过河问题 <2>利用区间 dp 背包类问题 <1> 0-1 背包,经典问题 <2>无限背包,经典问题 <3>判定性背包问题 <4>带附属关系的背包问题 <5> + -1 背包问题 <6>双背包求最优值 <7>构造三角形问题 <8>带上下界限制的背包问题(012背包) 线性的动态规划问题 <1>积木游戏问题 <2&g

Guava库学习:学习Guava Cache知识汇总

原文地址:Guava库学习:学习Guava Cache知识汇总 至此,我们结束了对Guava Cache 缓存机制的学习,在学习过程中,我们学习了如何简单的通过MapMaker创建最简单的ConcurrentMap缓存,我们也了解了缓存的高级特性,以及强大的LoadingCache,我们也探索和学习了CacheBuilder.CacheLoader这些核心的API,以及CacheStats.RemovalLitener等,下面对这些文章做一些汇总,方便以后的查阅和复习.     Guava库学习

PB编程基础知识汇总

PB编程基础知识汇总 第一章      1.  程序的开始,application的open事件. 退出程序例程:halt为退出函数 int SureQuit SureQuit = 2 SureQuit=Messagebox("退出系统","退出前请确认已保存好数据",Question!,OKCancel!, 2) if SureQuit = 1 then halt 2.  变量定义有效范围: ◎     declare-globe 全局变量,整个程序均有效 ◎  

ACM博弈知识汇总(转)

博弈知识汇总 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取胜. (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取

JavaScript正则表达式知识汇总

Js 正则表达式知识汇总 正则表达式: 1.什么是RegExp?RegExp是正则表达式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

web前端工程师知识汇总

分类: Web开发应用 一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/DOM/Flash等各种Web技术进行产品的界面开发.制作标准优化的代码,并增加交互动态功能,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验. Web前端工程师成长之路--知识汇总 图1.前端技术MSS W