
算法笔记
Ginsn
放弃很容易,但坚持一定很酷
展开
-
【Algorithms】动态规划之区间DP
概论所谓区间DP,从名字也可以看出与区间是密不可分的,也就是通过动态规划求得一段区间上最优解的算法,它的主要思想就是先在小区间进行DP得到最优解,然后再利用小区间的最优解合并求大区间的最优解。一般算法格式区间DP的算法格式比较固定,一般由数组dp[i][j]来表示在区间[i,j]内的最优解(具体由题目定义),然后由一个整形k(i<=k<j)来对区间[i,j]进行分割,一般分...原创 2018-08-10 15:35:40 · 401 阅读 · 0 评论 -
【Algorithms】堆排序(Heap Sort)
简述堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。所以在了解堆排序之前,就不得不了解一下二叉树在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”(left s...原创 2018-08-12 12:37:11 · 418 阅读 · 0 评论 -
【Algorithms】动态规划之状压DP--PKU JudgeOnline--3254
概论状态压缩动态规划(Dynamic programming)简称状压DP,所以我们在学习这个算法之前要了解的内容有两方面,一是状态压缩,二是动态规划。一、状态压缩什么是状态压缩呢,我们举个栗子:比如有一串灯泡,灯泡的数量为5,我们要记录这一串灯泡的亮灭情况,该怎么记录呢?我们很容易想到的是用数字来记录,灯泡只有两种状态(亮或者灭),我们就可以用1代表灯泡亮,0代表灯泡不亮,这时我们就...原创 2018-08-08 14:17:37 · 362 阅读 · 0 评论 -
【Algorithms】最短路径及常用算法简介
简述最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。解决图中最短路径问题又分为两种——单源最短路径和多源最短路径,单源最短路径的经典算法包括Dijkstra(戴克斯特拉)算法,Bellman-Ford(贝尔曼-福特)算法以及SPFA(Bellman-Ford算法的改进版本)等,多源最短路径有Floyd-Warshall(弗洛伊德)算法等。...原创 2018-08-18 21:26:34 · 1101 阅读 · 0 评论 -
【Algorithms】网络流基础篇——Edmond-Karp算法
网络流的相关定义:源点:有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点。 汇点:另一个点也很特殊,只进不出,叫做汇点。 容量和流量:每条有向边上有两个量,容量和流量,从i到j的容量通常用c[i,j]表示,流量则通常是f[i,j].通常可以把这些边想象成道路,流量就是这条道路的车流量,容量就是道路可承受的最大的车流量。很显然的,流量<=容量。而对于每个不是源点和汇点的点来...转载 2018-08-19 20:13:46 · 595 阅读 · 0 评论 -
【Algorithms】KMP子串查找算法
转载自July——从头到尾彻底理解KMP:https://blog.youkuaiyun.com/v_july_v/article/details/70418271. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。 然近期因开了个算法班,班...转载 2018-09-18 14:45:52 · 306 阅读 · 0 评论