算法模板学习专栏之总览(会慢慢陆续更新ing)
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~
http://www.cnblogs.com/chenxiwenruo/p/7495310.html
特别不喜欢那些随便转载别人的原创文章又不给出链接的
所以不准偷偷复制博主的博客噢~~
数据结构和算法模板系列之总览
很早前就打算将自己学过的数据结构和算法等知识和模板做个整理,但一直没有抽出时间来弄。现在打算抽空一点时间陆陆续续地将自己平时用的模板都贴上来,这里先做个综述。
主要针对那些想要准备机试、刷题或者刚刚接触ACM的初学者来说,对于AC大牛们,请出门左拐,秒刷一切。
建议用C++,因为有几个好处:
同样的代码,C++比java快,至于其他语言我就不太清楚了,用C/C++或者java刷题的占大多数
C++结构体比java的class要简洁方便很多,毕竟刷题不是那种大项目工程,所以简洁越好
C++的自定义排序很方便很实用,java也可以,但不如C++简单方便。
这里我用*来表示难度级别,其中:
*:虐菜难度,这点都不会你好意思说你学计算机的嘛
**:普通难度,稍微认真学下就能懂滴
***:地狱难度,咳咳,这个嘛,对于大多数人来说,得花费精力仔细去研究研究
另外,对于红色部分,一般保研/考研机试的不太会遇到(如果有遇到的童鞋,可以告知一声),但是像一些如微软等这些大公司以算法题为笔试,说不定可能会遇到,跟什么PAT、CCF认证简直就是不在一个档次,甩他们好几条街。。。
基本算法知识:
数据结构
STL运用,如queue、stack、vector、map*
链表*
并查集(一)入门**
树状数组**
线段树***
AVL树***(先给个模板链接吧,之后有时间更新个AVL的学习专栏,讲解一下模板,感觉网上大部分模板看起来都太复杂了)
图论
- 邻接链表——链式前向星 (比建立vector要快)
dfs和bfs*
前序、中序、后序*
最短路**
- 最小生成树**
二叉树*
邻接链表**
拓扑排序**
二分图匹配**
网络流***
数学
素数筛选法*
快速幂**
大数据运算**
字符串
常用函数库*
LIS,最长上升子序列**
LCS,最长公共子序列**
回文(暴力*,Manacher算法***)
字符串匹配(暴力*,KMP***)
字典树**
- LCA(最近公共祖先)离线算法Tarjan+并查集 **
DP
- LIS,LCS,LCIS
- 背包问题(01背包,完全背包)
- 状态压缩dp
- 区间dp
其它技巧
- C++自定义排序
- C++读写文件输入
- #define用法
算法模板学习专栏之总览(会慢慢陆续更新ing)的更多相关文章
- Linux学习资料网站汇总链接(持续更新ing)
排名不分先后. 学海无涯苦作舟. 博客: 1.slmba:LINUX博客原创大牛 2.edsionte's TechBlog:Linuxer (他的友情链接中还有一堆Linuxer,被公司屏蔽进不去. ...
- POJ 3041 匈牙利算法模板题
一开始预习是百度的算法 然后学习了一下 然后找到了学长的ppt 又学习了一下.. 发现..居然不一样... 找了模板题试了试..百度的不好用 反正就是wa了..果然还是应当跟着学长混.. 图两边的点分 ...
- 【树论 1】 prim算法的学习和使用
进阶版神犇可以看看本题解的姊妹篇 Kruskal算法的学习和使用 下面的内容是prim算法 但是最小生成树是什么呢? 标准定义如下:在边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值 ...
- Groovy学习专栏
今天新开了一个groovy的学习专栏,因为最近工作中会用到Groovy模板. 然后就是在网上找了一下Groovy模板相关的东西发现ibm中在2005年就有讲到这个的,我勒个去,这么早,我初中都还没毕业 ...
- [算法模板]Kruskal重构树
[算法模板]Kruskal重构树 kruskal重构树是一个很常用的图论算法.主要用于解决u->v所有路径上最长边的最小值,就是找到\(u->v\)的一条路径,使路径上的最长边最小. 图片 ...
- 推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】
最近偶尔发现一个算法编程学习的论坛,刚开始有点好奇,也只是注册了一下.最近有时间好好研究了一下,的确非常赞,所以推荐给大家.功能和介绍看下面介绍吧.首页的标题很给劲,很纯粹的Coding社区....虽 ...
- 匈牙利 算法&模板
匈牙利 算法 一. 算法简介 匈牙利算法是由匈牙利数学家Edmonds于1965年提出.该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法. 二分图的定义: 设G=(V,E)是一个 ...
- Tarjan 算法&模板
Tarjan 算法 一.算法简介 Tarjan 算法一种由Robert Tarjan提出的求解有向图强连通分量的算法,它能做到线性时间的复杂度. 我们定义: 如果两个顶点可以相互通达,则称两个顶点强连 ...
- 关于统计变换(CT/MCT/RMCT)算法的学习和实现
原文地址http://blog.sina.com.cn/s/blog_684c8d630100turx.html 刚开会每周的例会,最讨厌开会了,不过为了能顺利毕业,只能忍了.闲话不多说了,下面把上周 ...
随机推荐
- 用Python实现数据结构之二叉搜索树
二叉搜索树 二叉搜索树是一种特殊的二叉树,它的特点是: 对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的中的所有节点中的值都大于p中的值 ...
- 启动OpenVPN失败
启动OpenVPN失败 文:铁乐与猫 [root@yunwei_OpenVPN openvpn]# systemctl status openvpn ● openvpn.service - LSB: ...
- ccf--20151203--画图
本题思路如下: 题目和代码如下: 问题描述 试题编号: 201512-3 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 用 ASCII 字符来画图是一件有趣 ...
- Linux 小知识翻译 - 「Shell 脚本」
这次说说「Shell 脚本」. 根据上回的介绍,Shell就是「作为联系Linux和用户的接口而存在的软件」.在Linux环境中,通过Shell来操作系统很普遍. 这里,考虑到有时候可能想要「多次的进 ...
- scanf函数(初学者)
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中. 1.scanf函数的一般形式:scanf函数是一个标准的库函数,它的函数原型在头文件“stdio.h”中,与pr ...
- BSOJ 3899 -- 【CQOI2014】 数三角形
Description 给定一个n*m的网格,请计算三个点都在格点上的三角形共有多少个.下图为4*4的网格上的一个三角形. 注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数 ...
- python第五十课——多态性
animal.py class Animal: def __init__(self,name): self.name = name def eat(self): pass dog.py from an ...
- 转://oracle 重新编译用户无效对象
select owner,object_name, replace(object_type,' ','') object_type,to_char(created,'yyyy-mm-dd') as c ...
- 1192:放苹果(dp + 搜索)
这道题先用搜索写的,因为我需要先打表来寻找规律. 因为数据量小所以收搜也会过 #include<iostream> #include<cstdio> #include<c ...
- 1029 最大公约数和最小公倍数问题(gcd) luogu洛谷
题目描述 输入22个正整数x_0,y_0(2 \le x_0<100000,2 \le y_0<=1000000)x0,y0(2≤x0<100000,2≤y0<=100 ...