找回老网站,ozon电商平台,大型网站设计首页实例,酒店网站解决方案#xfeff;算法及算法思想总结 │ By lib │ ├暴力 ├模拟 ├递归及递推:数位统计类 ├构造 ▼├排序算法 │ ├冒泡排序 │ ├选择排序 │ ├计数排序 │ ├基数排序 │ ├插入排序 │ ├归并排序 │ ├快速排序 │… 算法及算法思想总结 │ By lib │ ├暴力 ├模拟 ├递归及递推:数位统计类 ├构造 ▼├排序算法 │ ├冒泡排序 │ ├选择排序 │ ├计数排序 │ ├基数排序 │ ├插入排序 │ ├归并排序 │ ├快速排序 │ ├堆排序 │ └二叉排序树 │ ▼├分治 │ ├快速幂 │ ├单调区间求解二分答案再验证 │ ├二分后先各自计算然后再根据某种策略合并答案 │ ├逆序对统计 │ ▼├贪心 │ ├不相交区间、区间选点问题、区间覆盖问题 │ ├流水作业调度问题、带期限和罚款的单位时间任务调度问题 │ ├其它最优化问题 │ ▼├搜索 │ ▼├剪枝 │ │ ├最优化剪枝可先贪心一个次优解 │ │ ├可行性 │ │ │ ▼├深度优先搜索dfs网格数据 │ │ ▼├实现方式 │ │ │ ├递归实现栈10000-20000层 │ │ │ └非递归实现手动栈 │ │ │ │ │ ├贪心预处理路径 │ │ ├回溯法 │ │ │ ▼├广度优先搜索bfs线性数据 │ │ ├队列先进先出 │ │ └双向广度优先搜索从源汇点同时搜 │ │ │ ├FloodFill(种子填充法) │ ├搜索顺序 │ ├搜索与其他算法结合 │ ├二分检索 │ ▼├规划 │ ▼├动态规划DP │ │ ▼├优化 │ │ │ ├数据结构 │ │ │ ├单调队列 │ │ │ │ │ ├背包背包九讲 │ │ ├区间型动态规划 │ │ ├子序列型动态规划 │ │ ├环形动态规划 │ │ ├树形动态规划 │ │ ├字符串型动态规划 │ │ └记忆化搜索 │ │ │ ▼├图论 │ ▼├基本概念 │ │ ├简单路径一条路径上的结点除起点x1和终点xk可以相同外其它结点均不相同x1xk的简单路径称为回路/环 │ │ ├阶图结点个数度入度出度奇点和偶点 │ │ ├带权图称为网 │ │ ├子图假设有两个图GVE和G’V’,E’如果V’∈ V且E’∈ E则称G’为G的子图。 │ │ ├连通分量极大连通子图 │ │ ├混合图有向无向“”无向边“”有向边 │ │ ├邻接边邻接点 │ │ ├简单图无环完全图点与点之间均有边 │ │ ├迹无重复边通路/轨(无重复点)圈起点和终点重合的轨 │ │ ├DAG有向无环图 │ │ │ ├拓扑序关键路径AOV网 │ ▼├最短路(三角不等式) │ │ ▼├算法 │ │ │ ▼├单源最短路SSSP │ │ │ │ ├Dijkstra无法处理负环堆优化 O(n^2) {O(E lg V)} │ │ │ │ ▼└Spfa堆优化 O(kE) │ │ │ │ ├Bellman-Ford的变形 │ │ │ │ └松弛操作 │ │ │ │ │ │ │ ▼└所有顶点对间最短路APSP │ │ │ ├Floyd:在最外层循环做了k-1次之后dist[i][j]则代表了i到j的路径中所有结点编号都小于k的最短路径。 │ │ │ │ │ ├次短路∈前K短路 │ │ │ ▼├最小生成树MST │ │ ▼├无向图最小生成树 │ │ │ ├Prim堆优化 O(V^2E) {O((VE) lg V)} │ │ │ └Kruskal并查集优化 O(E lg EV*E) {O(E lg EEα(V))} │ │ │ │ │ ▼├网络流 │ │ ▼├算法 │ │ │ ▼├增广路算法 │ │ │ │ ▼├Ford-Fulkerson方法 │ │ │ │ │ ├Edmonds-Karp算法bfs O(V*E^2) │ │ │ │ │ └dfs(效率低下 │ │ │ │ │ │ │ │ │ ▼└最短增广路算法(分层图 O(V^2*E) │ │ │ │ ├最短路径增值(MPLA) │ │ │ │ ├SapGap优化 推荐 │ │ │ │ └Dinic │ │ │ │ │ │ │ ▼├预流推进算法 │ │ │ │ ├push-relabel算法 O(V^2*E) │ │ │ │ ├relabel-to-front算法 O(V^3) │ │ │ │ └Hlpp最高标号预流推进算法效率高但代码长 O(V^2*sqrt(E)) │ │ │ │ │ │ │ └压入与重标记算法 │ │ │ ▼├路径 │ │ ├哈密顿回路点 │ │ └欧拉回路边欧拉图含欧拉回路 │ │ │ │ │ ├dfs序bfs序的使用 │ ▼├离散结构 │ ▼├串、树 │ │ ├LCA与RMQ相互转化 │ │ │ ▼├矩阵 │ │ ├部分和前缀和 │ │ ├离散化 │ │ │ │ ▼├数据结构 │ ├顺序表数组 │ ▼├链表 │ │ ▼├单链表 │ │ ├双链表 │ │ ├循环链表 │ │ │ ├串见离散结构 │ ▼├集合 │ │ ▼├哈希表散列表 │ │ │ ▼├哈希函数 │ │ │ │ ├直接定址法 │ │ │ │ ├数字分析法 │ │ │ │ ├平方取中法 │ │ │ │ └折叠法 │ │ │ │ │ │ │ ├分段Hash │ │ │ ▼└处理冲突 │ │ │ ├拉链法 │ │ │ ├多哈希法 │ │ │ ├开放地址法 │ │ │ └建域法 │ │ │ │ │ └并查集路径压缩 │ │ │ ▼├堆 │ │ ▼├二叉堆 │ │ │ └最大-最小堆 │ │ │ │ │ │ ├栈手写栈 │ ▼├队列 │ │ ├链队列 │ │ ├循环队列 │ │ ▼└优先队列带权值的队列 │ │ │ ▼├树 │ │ ▼├线段树 │ │ │ └Lazy标记 │ │ │ │ │ ├树状数组在线支持修改的前缀和 │ │ │ ▼└图的表示 │ ├邻接矩阵 │ ├邻接表 │ └链式前向星 │ ▼├数学 │ ├高精度*高精除高精不要求* │ ├排列组合:Stirling数 │ ├二项式定理 │ ├康托展开:一个全排列到一个整数的双射经常用来做可以用全排列表示状态的搜索的哈希函数 │ ▼├组合计数 │ │ ▼├递推关系与生成函数母函数 │ │ │ ├普通型母函数 │ │ │ └指数型母函数Fibonacci数列Catalan数列 │ │ │ │ │ ├抽屉原理 │ │ ├容斥原理 │ │ │ ├素数及素数判定 │ ├乘法逆元可用欧拉定理扩展欧几里德定理求解若ax≡1(mod f)则称a关于模f的乘法逆元为x。 │ ▼├最大公约数 │ │ ├欧几里德算法辗转相除法gcd(a,b)gcd(b,a mod b) │ │ └扩展欧几里德定理存在唯一的整数 xy 使得gcdabaxby │ │ │ 做题流程1、建模脱马甲2、破冰有序、单调、逆向发散状态与状态间联系3、设计数据结构保存相关信息并在数据结构的基础上设计算法解决问题要证明4、编写代码、调试程序。 每题任务1、你尝试了几个解题方向和思路2、正解怎么做的3、怎样从题目到正解4、你自己目标分多少有没有达到 理科生做题多问自己为什么要这么做下次遇到类似的问题怎么办