acm算法总结zon列表

简单列了一点

1.1 基本数据结构

1. 数组

2. 链表,双向链表

3. 队列,单调队列,双端队列

4. 栈,单调栈

1.2 中级数据结构

1. 堆

2. 并查集与带权并查集

3. hash 表

自然溢出

双hash

1.3 高级数据结构

1. 树状数组

2. 线段树,线段树合并

3. 平衡树

Treap 随机平衡二叉树

Splay 伸展树

* Scapegoat Tree 替罪羊树

4. 块状数组,块状链表

5.* 树套树

线段树套线段树

线段树套平衡树

* 平衡树套线段树

6.可并堆

左偏树

*配对堆

7. *KDtree,*四分树

1.4 可持久化数据结构

1. 可持久化线段树

主席树

2. * 可持久化平衡树

3. * 可持久化块状数组

1.5 字符串相关算法及数据结构

1. KMP

2. AC 自动机

3. 后缀数组

4. *后缀树

5. *后缀自动机

6. 字典树 Trie

7. manacher

1.6 图论相关

1. 最小生成树

prim

kruskal

2. 最短路,次短路,K短路

spfa

dijkstra

floyd

3. 图的连通

连通分量

割点,割边

4. 网络流

最大流

最小割

费用流

分数规划

5. 树相关

树上倍增,公共祖先

树链剖分

树的分治算法(点分治,边分治,*动态?树分治)

动态树 (LCT,*树分块)

虚树

*prufer编码

7. 拓扑排序

8. 欧拉图

9. 二分图

*KM算法

匈牙利算法

1.7 数学相关

1. (扩展)欧几里得算法,筛法,快速幂

斐蜀定理

更相减损术

2. 欧拉函数与*降幂大法

3. 费马小定理

4. 排列组合

lucas定理

5. 乘法逆元

6. 矩阵乘法

7. 数学期望与概率

8. 博弈论

sg函数

树上删边游戏

9. *拉格朗日乘子法

10. 中国剩余定理

11. 线性规划与网络流

12. 单纯型线性规划

13. 辛普森积分

14. 模线性方程组

15. 容斥原理与莫比乌斯反演

16. 置换群

17. 快速傅里叶变换

18. *大步小步法(BSGS),扩展BSGS

1.8 动态规划

1. 一般,背包,状压,区间,环形,树形,数位动态规划

记忆化搜索

斯坦纳树

背包九讲

2. 斜率优化与* 四边形不等式优化

3. 环 + 外向树上的动态规划

4. *插头动态规划

1.9 计算几何

1. 计算几何基础

2. 三维计算几何初步

3. *梯形剖分与*三角形剖分

4. 旋转卡壳

5. 半平面交

6. pick定理

7. 扫描线

1.10 搜索相关

1. bfs,dfs

2. A* 算法

3. 迭代加深搜索,双向广搜

1.11 特殊算法

1. 莫队算法,*树上莫队

2. 模拟退火

3. 爬山算法

4. 随机增量法

1.12 其它重要工具与方法

1.模拟与贪心

2. 二分,三分法(求偏导)

3. 分治,CDQ分治

4. 高精度

5. 离线

6. ST表

1.13 STL

1. map

2. priority_queue

3. set

4. bitset

5. rope

1.14 非常见算法

1. *朱刘算法

2. *弦图与区间图

原文地址:https://www.cnblogs.com/Aiahtwo/p/10888938.html

时间: 2024-09-26 23:15:26

acm算法总结zon列表的相关文章

ACM,算法

ACM,算法 描述 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数.他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入 有多组测试数据.第一行一个整数n,表示有n组测试数据.接下来的每行有一个整数m. 输出 输出第m个小光棍数. 样例输入 1 1 样例输出 471 #include <iostream> #include <strin

如何出一道ACM算法题?

本文背景 本人算法能力一般,但是为省赛和区域赛网络赛出过几道题,总结了一些自己的经验,希望与大家分享.本文不涉及具体的算法题,都是一些理论性的想法和一些建议. 题源 如果你能在没有题源的情况下自己想出一道新的题目,想必也很难看到这篇文章了.题源是出题的第一步,相信到了需要出题的地步,正在看这篇博客的你一定有自己熟悉的刷题网站,而这个网站可以作为你的题源,因为熟悉.本人推荐两个题源网站: 英文题源网站 Codeforce 中文题源网站 51nod 拿到的题源一定要确保只能能够写出所有解法,可能题目

算法导论-散列表(Hash Table)

目录 引言 直接寻址 散列寻址 散列函数 除法散列 乘法散列 全域散列 完全散列 碰撞处理方法 链表法 开放寻址法 线性探查 二次探查 双重散列 随机散列 再散列问题 完整源码(C++) 参考资料 内容 1.引言 如果想在一个n个元素的列表中,查询元素x是否存在于列表中,首先想到的就是从头到尾遍历一遍列表,逐个进行比较,这种方法效率是Θ(n):当然,如果列表是已经排好序的话,可以采用二分查找算法进行查找,这时效率提升到Θ(logn);  本文中,我们介绍散列表(HashTable),能使查找效率

【ACM算法纲要】【转自ALPC】

基本 C/C++.STL(vector.set.map.queue.string.algorithm) 枚举.贪心.递归.分治.递推.模拟 构造.位运算.常数优化 数据结构 队列.堆.栈.链表 排序(插入.冒泡.快速.归并.堆.桶.基数) 二分查找.散列表.并查集.哈夫曼树 排序二叉树.左偏树.平衡树(Splay/Treap/SBT) 树状数组.线段树.归并树.划分树.主席树.树套树 树链剖分.动态树 1/2维RMQ.LCA(在线/离线).稀疏表.字典树 字符串 KMP.扩展KMP AC自动机

算法_散列表

使用散列的查找算法分为两步,第一步用散列函数将被查找的键转化为数组的一个索引,理想情况下不同的键都被转化为不同的索引值.而当多个键散列到相同的索引值的情况下,就需要处理碰撞冲突,为此有两种方法,拉链法和线性探测法. 散列函数用于通过键来获取其对应的索引值.好的散列函数应该具有计算简便,等价的键必然产生相等的散列值,均匀的散列所有的键的条件. 一.基于拉链法的散列表. 拉链法对于碰撞处理的解决方法是将大小为M的数组中的每个元素都指向一个链表,链表中的每一个节点都存储了散列值为该元素的索引的键值对.

数据结构与算法之五 链接列表

在本章中,你将学习: 认识链接列表的特性 执行单链接列表 假定您已经编写了一个算法来产生并存储1到10,00,000之间的所有质数,然后显示它们. 您如何解决这个问题? 考虑以下使用数组来解决此问题的算法: 1.Set I = 0 2.Repeat step 3 varying N from 2 to 1000000 3.If N is a prime number a.Set A[I] = N b.I = I + 1 4.Repeat step 5 varying J from 0 to I-

算法小计-列表排列

算法的简单的概念算法的概念:O()大O表示法O(): 程序大概运行的次数 1,时间复杂度:时间复杂度是用来估计算法运行时间的一个式子(单位).常见的时间复杂度(按效率排序)O(1)<O(logn)<O(n)<O(nlogn)<O(n**2)<O(n**2logn)<O(n**3)前四种较重要. 2,空间复杂度:时间复杂度:用来评估算法内存占用大小的一个式子 列表排序:排序low b三人组:冒泡排序每两个相邻的数比较,如果对比一个数比一个大,交换位置.def Bubble

数据结构和算法篇——散列表

之前讲过博主在某网买了一个数据结构与算法的课程.本篇散列表是其中的三节.散列表应该是 Java 程序员常用并且最先碰到的一个数据结构了吧?Java 的 HashMap 就是对散列表的实现.可以说散列表算是一个比较基础.比较好理解(抛开需要缜密设计的哈希函数不说).比较好用(查询时间复杂度O(1))的一种数据结构.本篇在此分享这三节的总结笔记. 1)散列表开篇介绍:https://www.cnblogs.com/christmad/p/11519055.html 2)如何打造一个工业级的散列表:h

ACM算法总结及刷题参考

参考:http://bbs.byr.cn/#!article/ACM_ICPC/11777 OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965)    (2)贪心(poj1328,poj2109,poj2586)    (3)递归和分治法.     (4)递推.     (5)构造法.(po