基本 |
C/C++、STL(vector、set、map、queue、string、algorithm) 枚举、贪心、递归、分治、递推、模拟 构造、位运算、常数优化 |
数据结构 |
队列、堆、栈、链表 排序(插入、冒泡、快速、归并、堆、桶、基数) 二分查找、散列表、并查集、哈夫曼树 排序二叉树、左偏树、平衡树(Splay/Treap/SBT) 树状数组、线段树、归并树、划分树、主席树、树套树 树链剖分、动态树 1/2维RMQ、LCA(在线/离线)、稀疏表、字典树 |
字符串 |
KMP、扩展KMP AC自动机 后缀树、后缀数组、后缀自动机 LCP随机化算法 最小表示法 |
搜索 |
DFS、BFS、剪枝、双向宽搜 迭代加深、A*、ID-A* Dancing-links 爬山法、模拟退火、遗传算法 |
数学 |
进制转换、表达式求值 二分、三分 概率论、微积分 高精度(加减乘除模开方) 高精实数、分数 快速幂、矩阵、矩阵链乘 多项式求根、牛顿迭代 高斯消元解线性方程组 组合数学、排列组合计数 容斥原理、抽屉原理、mobius反演 置换群、burnside 引理、Polya定理、母函数 卡特兰数、斯特林数 傅立叶变换(大数乘法) 半平面交解二元线性规划、单纯形法解线性规划 约瑟夫问题 0/1分数规划 |
数论 |
GCD、扩展欧几里德 筛法求素数、素数判定 同余方程、中国剩余定理 大素数测试、分解 欧拉函数、积性函数、法兰数列 逆元、离散对数 |
图论 |
基本概念(DFS生成树上边,桥,割点,割,双连通分量) 图的表示(矩阵、邻接表) 最短路(Dijkstra(+heap)、Floyd、Bellmen-ford、Spfa)、传递闭包 最小生成树 强联通分量(+缩点) 拓扑排序 桥、边双连通分量及性质 割点、点双连通分量 度限制生成树、次小生成树、最优比例生成树 最小树形图 次短路(Dijkstra)、K短路(A*) 差分约束系统 2-SAT 欧拉路径(回路)、汉密尔顿路(回路) 网络流(SAP、Dinic) 最大流最小割、平面图最小割、全局最小割Stoer-Wagner算法 最小费用最大流 有流量上下界的网络流(费用流) 无源汇的网络流 二分图匹配、二分图最大权匹配 任意图匹配(带花树) 最大权闭合子图、最大密度子图 最大团、最大独立集 |
计算几何 |
基本操作: 叉积、点积 向量平移、旋转 线段(直线、射线)相交的判断、求交点 点、线段、直线、平面关系、距离 点在多边形内/外/上 多边形周长、面积 二维凸包 最近点对、最近圆对 旋转卡壳 计算距离:凸多边形直径、形宽,凸多边形间的最大、最小距离 外界矩形:最小周长、最小面积外界矩形 三角剖分:洋葱、螺旋、四边形剖分 凸多边形属性:凸包合并、找公切线、临界切线、凸多边形相交、凸多边形矢量和 最薄截面:最薄横截带 三角形 球面距离 三维几何基本操作 向量平移、旋转 点、线、面 三维凸包 点集的最小覆盖圆 最大空心矩形 圆的面积交/并 圆与圆的位置关系 圆与线段、多边形的关系、面积 半平面交 自适应simpson公式 steiner生成树 |
动态规划 |
记忆化搜索 最长公共子序列 最长上升序列 背包九讲(0/1、完全、依赖、分组、泛化物品) 四边形不等式优化、斜率优化、单调队列(1D\1D) 数据结构优化(线段树优化、堆优化、左偏树优化) 树形DP、自动机DP 数位DP、状态压缩DP、插头DP、广义插头(最小表示) |
博弈论 |
Bash Game、Wythoff Game NIM、SG函数 搜索、极大极小搜索 无向图删边博弈 |
其他 | 历法、日期汉诺塔
离散化 找规律 打表 |
·算法」 纲要
时间: 2024-09-30 18:09:41
·算法」 纲要的相关文章
「C语言」「算法」访问数组的多种方式
1 #include <stdio.h> 2 3 //分别用数组名和指针变量,以下标法和指针法输入和输出数组的所有元素 4 5 int main(){ 6 int i=0; 7 int array[6]; 8 int *p=array; 9 printf("\n Please input array[6]: \n"); 10 while(p<(array+6)) 11 scanf("%d",p++); 12 printf("\n Outp
「C语言」「算法」根据三边判断三角形类型
1 #include <stdio.h> 2 3 //根据三边长判断是否能组成三角形,分别以边长和角度看能组成什么三角形 4 5 int main(){ 6 int a,b,c; 7 printf("请输入三边的长,并以逗号隔开:\n"); 8 scanf("%d,%d,%d",&a,&b,&c); 9 if(a<=0 || b<=0 || c<=0){ 10 printf("请输入正数");
「C语言」「算法」输出指定范围内的素数
#include <stdio.h> //输出指定范围内的素数 int main(){ int a,b; int i,j; printf("请输入整数范围并用空格隔开:\n"); scanf("%d%d",&a,&b); for(i=a;i<=b;i++){ for(j=2;j<=i-1;j++) { if(i%j==0) break; } if(j>=i-1) printf("%d ",i); }
「C语言」「算法」多种方法求一个数的位数及逆序数
1 #include <stdio.h> 2 3 4 int main() 5 { 6 int a,b[5]={0,0,0,0,0},i=0,len=0; 7 scanf("%d",&a); 8 while(i<5) 9 { 10 b[i]=a%10; 11 a=a/10; 12 len++; 13 if(a==0) 14 break; 15 i++; 16 } 17 printf("%d\n",len); 18 for(i=len-1;i
「C语言」「算法」数组的冒泡排序
1 #include<stdio.h> 2 #define N 10 3 4 //数组的冒泡排序 5 6 void sort(int b[]){ 7 int i,j; 8 for(i=0;i<N;i++){ 9 for(j=i+1;j<N;j++){ 10 if(b[i]>b[j]){ 11 b[i]^=b[j]; 12 b[j]^=b[i]; 13 b[i]^=b[j]; 14 } 15 } 16 } 17 } 18 19 int main() { 20 int a[N];
使用python实现森林算法方法步骤详解
本文和大家分享的是使用python实现森林算法相关内容,一起来看看吧,希望对大家学习python有所帮助. 算法描述 随机森林算法 决策树运行的每一步都涉及到对数据集中的最优**点(best split point)进行贪婪选择(greedy selection). 这个机制使得决策树在没有被剪枝的情况下易产生较高的方差.整合通过提取训练数据库中不同样本(某一问题的不同表现形式)构建的复合树及其生成的预测值能够稳定并降低这样的高方差.这种方法被称作引导**算法(bootstrap aggrega
数据结构与算法1
数据结构与算法(一),概述 转载请注明出处:http://www.cnblogs.com/wangyingli/p/5919297.html 数据结构学了有一年的时间了,但是一直没有好好的总结一下,现在回想起来,感觉好像都不怎么记得了.所以接下来一段时间我将重新学习一下,算是温故而知新了.本着「分享是一种美德」的精神,我将把我的学习总结记录下来,并与大家分享. 本节的主要内容有: 一.数据结构 1.定义 2.关于数据结构的几个术语 3.逻辑结构与物理结构 二.抽象数据类型 三.算法 四.算法的复
从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
从K近邻算法.距离度量谈到KD树.SIFT+BBF算法 从K近邻算法.距离度量谈到KD树.SIFT+BBF算法 前言 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1.KD树:2.神经网络:3.编程艺术第28章.你看到,blog内的文章与你于别处所见的任何都不同.于是,等啊等,等一台电脑,只好等待..”.得益于田,借了我一台电脑(借他电脑的时候,我连表示感谢,他说“能找到工作全靠你的博客,这点儿小忙还说,不地道”,有的时候,稍许感受到受人信任也是一种压力,愿我不辜负大家对我的信任)
Raft一致性算法
转自 http://blog.csdn.net/cszhouwei/article/details/38374603 Why Not Paxos Paxos算法是莱斯利·兰伯特(LeslieLamport,就是 LaTeX 中的”La”,此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法.由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后1998年重新发表到ACM Transactions on Computer Systems上(The Part-TimePa