![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
walkaway11
这个作者很懒,什么都没留下…
展开
-
并查集
并查集:(union-find sets)是一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,其中最完美的应用是实现Kruskar算法求最小生成树。其实,这一部分《算法导论》讲的很精炼(第21章:用于不相交的集合)。并查集是一种可以方便地进行以下三种操作的数据结构:合并两个集合;将一元素并入另一集体;判断两个元素是否属于同一个集合。原创 2009-02-18 12:19:00 · 377 阅读 · 0 评论 -
poj 2255 Tree Recovery
这个题目用来练习数据结构很不错,给出树的先序遍历,中序遍历,然后求出后序遍历。思路很简单:根据先序,中序,建树。然后后序访问此树。使用递归。#include#include#includeusing namespace std;typedef struct Node{ char t; struct Node *lch,*rch;};//建树 Node* create(const string& p原创 2009-02-23 11:52:00 · 1069 阅读 · 3 评论 -
poj 3687 Labeling Balls(拓扑排序)
这个题目必须反向建图,这个我只能举个反例说明,但是没有办法证明。#include#include#includebool grid[202][202],tag[202];int top[202],ball[202];int main(){ int cases; int i,j,k,M,N,a,b; bool flag; scanf("%d",&cases); while(cases--) {原创 2009-04-04 10:22:00 · 1335 阅读 · 2 评论 -
poj 3026 Borg Maze
题目要求:Borg扫描到所有外星人的最低代价。题目输入:输入x,y值,空格表示可以通过的空间,'#'表示有障碍物,不能通过,'A'表示外星人,'S'表示搜索的开始。答题思路:先根据输入的矩阵建立出来一个无向图。'A'或者'S'表示一个顶点。使用广度优先算法找到每个顶点的邻节点。根据所建立图,利用prim求出最小生成树。代码:#include#include#include#include#includeusing namespace std;#define MAX 10000struct Point{ in原创 2010-07-23 19:27:00 · 643 阅读 · 0 评论 -
Poj 3072 Robot(单源最短路径)
这个题目很简单,但是细节处理麻烦,以至于做得想吐。题目大意:题目给出n个点的坐标,机器人一次性可以移动的最长距离R,当机器人要走向(xj,yj)时,必须转向(xj,yj).没转1度需要1秒,初始化机器人指向(xn,yn)。求机器人从(x1,y1)到(xn,yn)所需要的时间。大体思路:从(x1,y1)出发,在(x1,y1)的方向是指向(xn,yn)的,初始化所有的点到(x1,y1)的时间(转角需要的时间和距离所花费的时间)(x1->xi)。加入时间最小的节点(xm,ym)。更新其他未加入的节点的时间,如果(原创 2010-10-08 11:51:00 · 1141 阅读 · 0 评论