![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
文章平均质量分 75
Hermit_Inwind
这个作者很懒,什么都没留下…
展开
-
学习笔记_堆
Heap:堆 堆是一种建立在树上的结构,是一种完全二叉树型的数据结构,目前了解到的应用是堆排序,然后用于实现优先队列。堆的特点是,子结点一定比父结点大或者小于父结点。其中,所有子结点都小于父结点的堆是最大二叉堆,子结点小于父结点的是最小二叉堆。 堆的核心是heapify,维护堆合法性的算法;后续谈到的建立堆,堆排序,堆中插入元素,删除元素都离不开维护堆合法性。所以在一开始打算谈一下如何维护堆的...原创 2015-12-27 17:29:38 · 409 阅读 · 0 评论 -
POJ1236 Tarjan求强连通分量
题目链接:http://poj.org/problem?id=1236题目大意:有一个有向图,图中两点之间若有一条有向边代表一份软件可以从弧尾发送到弧头。题目分两个小问,第一个问题事发送软件到图中的某些点,问最少发送多少个点可以使这份软件可以到达图中的任何一个点第二小问问,最少向图中添加几条边可以使发送软件到图中任意一个点就可以使该软件到达图中的所有点。思路:求强联原创 2017-07-03 19:21:45 · 268 阅读 · 0 评论 -
记录一下zkw线段树
今天重新学习了一下ZKW线段树,非递归版的线段树。学完之后就是突出一个美丽新世界。 在这里用敌兵布阵测试,并记录一下方便以后复习。 #includeusing namespace std;const int maxn = 50005;int n, N;int arr[maxn];int Sum[maxn<<2];void build(int n){原创 2017-07-03 19:04:56 · 221 阅读 · 0 评论 -
HDU4009 最小树形图 有向最小生成树
http://acm.hdu.edu.cn/showproblem.php?pid=4009边为有向边的最小生成树,用到朱-刘算法。用以下几个步骤解决这个问题:1, 检验图的连通性 可用DFS,或者考察每个节点的最短入边长度是否小于设定的INF来实现2, 将当前图的每个点的最短入边计入答案3, 检查图中是否存在环,如果不存在直接返回答案,若存在环,就需要将环缩为一个点,然后重新原创 2017-07-02 21:04:58 · 284 阅读 · 0 评论 -
最小度限制生成树 POJ1639
今天了解了一下最小度限制生成树。这个问题的本质依旧是生成树,但是对于某个点的度给定限制。也就是连到该点上的边不能超过限制的数量limit。具体的解决过程和相关的证明可以看一下《最小生成树问题的扩展》这篇论文。这里简单讲一下解决问题的流程也方便我之后来复习。1,用除去和有限制的点相连的以外的边做最小生成树。这个时候可能不能保证所有点都连通,那么可能会出现几个连通块。如果连通块的数量超过了限制原创 2017-07-10 19:18:27 · 562 阅读 · 0 评论 -
HDU4085 斯坦纳树
http://acm.hdu.edu.cn/showproblem.php?pid=4085 新学习了斯坦纳树,记录一下。 我是从http://endlesscount.blog.163.com/blog/static/821197872012525113427573/学习的斯坦纳树 斯坦纳树用于解决保证指定节点连接的情况下,求边权总和最小的问题。算是用最短原创 2017-04-08 13:51:10 · 371 阅读 · 0 评论 -
2016广东工业大学网络赛 B
Problem B: Sward Art OnlineDescription Krito为了打败第一层的boss - The eye of giant.SAO系统种一个人物可以装备4个物品,分别是左手武器,右手武器,首饰,盔甲,这些都可以增加一定的攻击力。注意每一种装备只能在所属的装备槽,双手武器会同时占用左手武器和右手武器的位置。还有有些首饰和特定的盔甲搭配可以原创 2016-04-12 21:53:07 · 610 阅读 · 0 评论 -
Edmonds-Karp算法,网络流最大流
网络流是一种生活中常见的图模型,包含一个起始点,和一个汇点,以及若干结点,用有向边连接,每条边的权值代表能流经该边的最大流量。生活中,水流网络,电流网络,信息网络这些问题都能描述成网络流。网络流中一种常见的问题是最大流问题。即求从起始点到达汇点流的最大值。在《算法导论》介绍了Edmonds-Karp算法,该算法运行时间在图G=(V,E)上为O(VE),基于BFS实现。实现过程是从残存网络中找到原创 2016-01-30 15:27:43 · 1073 阅读 · 0 评论 -
算法学习:尺取法
昨天看了一下挑战程序设计竞赛,看到了尺取法,刚好博主最近写到的一道题也可以使用尺取法。与原本的暴力求解对比,这种方法耗时为O(n)。有些想法,现在写出来加深印象,有不足之处望大牛们指正。尺取法指对一个数组保存一对下标(起点和终点),依照需要交替移动两下标,按此扫描数组,直到找到答案。能够在线性时间内解决一类问题。这样对一个数组上的求解问题可以从一般的O(n^2)降低为O(n)。原创 2016-02-03 18:03:25 · 649 阅读 · 0 评论 -
点对间的最短路 Floyd-Warshall
最近把Floyd算法看了几遍以后算是明白了一些。感觉Floyd算法本质上是DP,自底向上求出任意点对间的最短路。使用DP[k][i][j]表示中间点可能为0~k的i到j的最短路。然后对k进行考察。一种情况是k存在于i到j的最短路径上,i~k~j。另一种则是k不在i到j的最短路径上。转移方程为DP[k][i][j]=min(DP[k][i][j],DP[k-1][i][k]+DP[k-1][k][j原创 2016-02-13 23:06:28 · 358 阅读 · 0 评论 -
算法学习_红黑树
二叉搜索树由于其随机构造的特点,可能会出现构造出来的搜索树效率十分低。算法学习--二叉搜索树:http://blog.csdn.net/hermit_inwind/article/details/50545703红黑树是多种平衡二叉搜索树中的一种,一颗含有n个结点的红黑树其高度接近O(lgn);由于二叉搜索树上的动态集合操作耗时与其高度有关,所以,我们可以知道,红黑树上动态集合操作平均原创 2016-01-22 23:54:29 · 403 阅读 · 0 评论 -
算法学习--二叉搜索树
二叉搜索树支持动态数据操作,二叉搜索树结构可用于字典,也可以用来实现优先队列。二叉搜索树结构建立在二叉树上,可以用链表结构来实现。每个结点包含的信息有left该结点的左子结点,right该结点的右子结点,parent该结点的双亲结点,key查询关键字。如果有需要可以包含data,某种具体的数据。因为使用到链式结构,所以需要使用到malloc,或者是new函数。在后面的代码中博主使用malloc函数原创 2016-01-20 00:21:12 · 401 阅读 · 0 评论 -
算法学习笔记:Bellman-Ford算法 单源最短路
Bellman-Ford算法 解决单源最短路 最短路是图问题中常见的一种问题,最短路也分很多种类。之前在写题的时候接触到Dijkstra算法。但是后来接触到更多单源最短路问题后发现,Dijkstra算法虽然有优于Bellman-Ford算法的时间复杂度,但是舍弃对负权回路的检测。而Bellman-Ford算法可以检测到负权回路,这个时候程序就会返回值提示含有负权回路,此时不存在最短路。原创 2015-12-30 09:00:42 · 767 阅读 · 0 评论 -
POJ1679
题目链接:http://poj.org/problem?id=1679问给出的图中的最小生成树是否唯一。我们求次小生成树,如果两个生成树的权值和相等,说明最小生成树不唯一。这里我使用了kruskal,遍历最小生成树中的边,删除后重新求最小生成树,来确定次小生成树。#include#include#include#includeusing namespace原创 2017-07-03 20:00:29 · 320 阅读 · 0 评论