经典算法
QvQ是惊喜不是哭泣
不羁而自律
展开
-
KMP算法——字符串匹配
不得不说,图的形象和直观是文字所代替不了的,在此向原文作者致敬! 转载:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 1.kmp算法的原理: 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE"转载 2016-04-04 19:58:54 · 275 阅读 · 0 评论 -
弗罗莱(Fleury)算法 欧拉(Euler)通路/回路
1、基本概念: (1)欧拉图的基本概念: 欧拉通路 (欧拉迹):通过图中每条边一次且仅一次,并且过每一顶点的通路。 欧拉回路 (欧拉闭迹):通过图中每条边一次且仅一次,并且过每一顶点的回路。 欧拉图:存在欧拉回路的图。欧拉图就是从一顶点出发每条边恰通过一次又能回到出发顶点的那种图,即不重复的行遍所有的边再回到出发点。 通路和回路:称vie1e2…env转载 2016-03-25 16:37:08 · 7441 阅读 · 1 评论 -
第一讲 递归
递归(recursion):程序调用自身的编程技巧。 递归满足2个条件: 1)有反复执行的过程(调用自身) 2)有跳出反复执行过程的条件(递归出口) 一、阶乘: #include using namespace std; int recursive(int i) { int sum = 0; if (0 == i) return (1); e原创 2016-04-13 18:58:49 · 452 阅读 · 0 评论 -
字典树(讲解+模板)
1. Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 它有3个基本性质:转载 2017-03-25 17:21:59 · 939 阅读 · 2 评论 -
【分治算法】
1. 欧几里得算法(辗转相除法)知识背景: 求a和b的最大公约数 记 a(mod)b=ca (mod) b=c a=kb+ca=kb+c 设a b的最大公约数为d,则a=m∗da=m*d b=n∗db=n*d且m和n互质。c=a−kb=md−knd=(m−kn)dc=a-kb=md-knd=(m-kn)d因为m和n互质,则n和m-kn互质,c和b的最大公约数也是d所以: “a和b(a>b原创 2017-09-15 14:48:46 · 479 阅读 · 0 评论 -
【分支界限法】
1. TSP问题 有若干个城市,任何两个城市之间的距离都是确定的,现要求一旅行商从某城市出发必须经过每一个城市且只在一个城市逗留一次,最后回到出发的城市,问如何事先确定一条最短的线路已保证其旅行的费用最少? #include <stdio.h> const int MAX = 999999999; int map[20000][20000]; int visited[20000]; int ci原创 2017-09-16 00:22:06 · 388 阅读 · 0 评论