PASCAL并查集讲解.ppt

并查集初步及应用; 引例:犯罪团伙 1、最小生成树 2、细胞个数 3、房间问题(noi94) 4、代码等式 5、银河英雄传说(noi2002);引例:【犯罪团伙】 警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。有可能一个犯罪团伙只有一个人。 请你根据已知罪犯之间的关系,确定犯罪团伙的数量。已知罪犯的编号从1至n。 输入: 第一行:n(=10000,罪犯数量), 第二行:m(=100000,关系数量) 以下若干行:每行两个数:I 和j,中间一个空格隔开,表示罪犯i和罪犯j相互认识。 输出:一个整数,犯罪团伙的数量。;建立无向图的模型。 ?如果x和y认识,结点x和y建立一条无向边。 ?求无向图的连通分量(dfs;bfs) ?时间和空间! 邻接矩阵:空间太大,超时。 邻接表:空间满足,时间查过1s;抽象的算法:; 需要将n个不同的元素划分成一组不相交的集合。开始时,每个元素自己成一个单元素集合,然后按照一定的顺序或问题给定的条件和要求将属于同一组元素(有特定关系)所在的集合合并,最后统计集合的个数往往就是问题的解。 在这个过程中要反复的用到查询某个元素属于哪个集合的运算;两个不同集合合并

文档评论(0)

1亿VIP精品文档

相关文档