![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm
文章平均质量分 79
YXY_1989
山东蓝翔高级技工学校香港沙田分校Master;
IBM中国研究院Researcher Intern;
IBM China Regular staff;
展开
-
线段树基础
/*Author:YangxiangyuPid:HDU 1754 I hate it简单线段树*/#include#define MAXN 200000struct node{ int left,right,mid,value;}interval_tree[MAXN<<2];int n,m;int max(int a,int b){return a>b?a:b;}voi原创 2014-09-05 14:36:26 · 560 阅读 · 0 评论 -
图论算法(7) --- 用并查集求最小生成树
求最小生成树,最经典的算法无非是prim算法和kruskal算法,而时间效率上,kruskal更胜一筹。对于kruskal的实现,这里我们采用并查集的思想。原创 2014-09-19 18:13:08 · 1017 阅读 · 3 评论 -
图论算法(5) --- 双向广搜求最短路(Bidirectional Breadth First Search)
我们知道,在图论算法中,求最短路是最基本的问题。在求最短路的问题中,应用双向广度优先搜索算法,又是一个较为高效而又简单的算法。所谓双向广度优先搜索,其实根本的核心还是BFS,只不过它是从起点和终点两头同时搜索,大大提高了搜索效率,又节省了搜索空间。广搜大家知道当然是用队列来实现了,在这里,要注意的问题就是,我们必须按层搜索,正向队列处理一层,接着去处理反向队列的一层,按层交替进行,而不是按节点交替原创 2014-09-12 11:14:01 · 4744 阅读 · 1 评论 -
图论算法(6)(更新版) --- Tarjan算法求强连通分量
之前Tarjan算法求强连通分量博文中,代码实现用到了固定大小数组,扩展起来似乎并不是很方便,在java里这样来实现本身就是不太妥当的,所以下面给出一个更新版本的代码实现,算法本身比较简单,如果对算法不太理解,请先看之前的博文讲解。原创 2014-09-22 14:03:43 · 975 阅读 · 0 评论 -
图论算法(4) --- TSP旅行商问题 求最短回路(acm)
对于TSP旅行商问题,我们做的最多的也就是求最短回路了,那么对于一个数据量适中的图来说,一般的dfs方法即可求解,在这里,我应用dfs的思想来实现此问题,而关键之处在于对矩阵的改进,这样的操作可以使得应用搜索思想求TSP问题时,效率有显著的提高。对于矩阵的改进,我们对矩阵的处理是,每一行减去所在行的最小值,每一列减去所在列的最小值,并把这些最小值加到结果sum中,这样的操作是将矩阵稀疏原创 2014-09-03 17:42:07 · 9820 阅读 · 6 评论 -
图论算法(6) --- Tarjan算法求强连通分量
此算法以有向图作为输入,并按照所在的强连通分量给出其顶点集的一个划分。本文从原理到实现都有着详细的讲解。欢迎大家指正。原创 2014-09-15 16:00:10 · 2203 阅读 · 1 评论