- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并查集初步及应用;
引例:犯罪团伙
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个不同的元素划分成一组不相交的集合。开始时,每个元素自己成一个单元素集合,然后按照一定的顺序或问题给定的条件和要求将属于同一组元素(有特定关系)所在的集合合并,最后统计集合的个数往往就是问题的解。
在这个过程中要反复的用到查询某个元素属于哪个集合的运算;两个不同集合合并的运算。适合描述这类问题的抽象数据结构类型称为并查集(合并与查找)。;◆并查集是一种树型的数据结构,用于处理一些不相交集合S={S1, S2, …,Sn}, 每个集合Si都有一个特殊元素root[Si],称为集合的代表元.; 并查集的一个重要的应用是确定给定集合上的等价关系的个数。
等价关系是一个具有自反、对称和传递三个性质的关系。
等号“=”在实数集合R上是一个等价关系。
对于实数中的任意x、y、z。一定满足下列关系:
1)、x=x (自反性)
2)、如果x=y,则y=x (对称性)
3)、如果x=y,y=z,则x=z (传递性)
;【犯罪团伙】问题:;并查集的树型结构实现;?Init(X): 集合初始化:
father[xi]=0(或者xi); 每个结点都是一颗独立的树, 是该树的代表元素。;2;树根(???合代表元素):
Father[1]=0; father[8]=0; father[11]=0
孩子结点:
father[2]=1; father[4]=3; father[5]=4; father[9]=8;算法的 实现:;输入:
11
8
1 2
4 5
3 4
1 3
5 6
7 10
5 10
8 9;const max=10000;
var
a:array[1..max]of longint; //父亲指针
i,j,m,n,ans,x,y,p,q:longint;
function find(i:longint):longint;{非递归算法找i的根}
var j,k,t:longint;
begin
j:=i;//顺着结点i开始向上找,直到根为止。
while a[j]0 do j:=a[j];
find:=j;
end;; readln(n);//读入顶点数
readln(m);//读入关系:边
fillchar(a,sizeof(a),0);{默认根标志是0,开始全是树根}
for i:=1 to m do
begin
readln(x,y);
p:=find(x); {查找x的根}
q:=find(y); {查找y的根}
if pq then a[q]:=p; {合并p和q子树}
end;
ans:=0;{树根记数}
for i:=1 to n do
if a[i]=0 then inc(ans);{记录树根结点}
writeln(ans);
end.;function find(i:longint):longint;
//递归算法找i的根
var j,k,t:longint;
begin
if a[i]=0 then exit(i); //若i为根,返回本身结点序号
find:=find(a[i])
您可能关注的文档
- 游泳场所台账分析.doc
- Oracle表管理讲解.ppt
- Oracle成本管理模块讲解.ppt
- oracle复习题讲解.doc
- 游泳池经营权公开招租分析.doc
- Oracle索引浅谈及简单应用讲解.pptx
- 1.3证明摘要.ppt
- 2015年秋综合化学实验_实验报告摘要.doc
- MIS案例演示1讲解.ppt
- 2015年全国中学生生物学竞赛试题附答案摘要.docx
- 急性肾功能衰竭综合征的肾血管介入性诊治4例报告并文献复习.docx
- 基于血流动力学、镇痛效果分析右美托咪定用于老年患者髋部骨折术的效果.docx
- 价格打骨折 小心统筹车险.docx
- 交通伤导致骨盆骨折合并多发损伤患者一体化救治体系的效果研究.docx
- 多层螺旋CT与DR片诊断肋骨骨折的临床分析.docx
- 儿童肱骨髁上骨折后尺神经损伤恢复的预测因素分析.docx
- 康复联合舒适护理在手骨折患者中的应用及对其依从性的影响.docx
- 机器人辅助老年股骨粗隆间骨折内固定术后康复.docx
- 超声辅助定位在老年髋部骨折患者椎管内麻醉中的应用:前瞻性随机对照研究.docx
- 两岸《经济日报》全面合作拉开帷幕.docx
最近下载
- 2025-2026学年青岛版(五四学制)(2024)小学数学二年级上册(全册)教学设计(附目录).pdf VIP
- QC_T 750-2006 清洗车通用技术条件.docx VIP
- 中医学基础试题及答案.docx VIP
- 企业安全讲话稿.docx VIP
- 扭矩转角传感器失效状态下的方向盘转向助力方法及系统.pdf VIP
- 中国餐饮连锁企业薪酬管理现状及对策研究--以星巴克为例.docx VIP
- DBJT15-234-2021 广东省绿色建筑检测标准 (2).pdf VIP
- 外贸单证年终总结.pptx
- 国家开放大学《机电接口技术课程设计》任务书参考答案.doc VIP
- 车辆伤害专项应急救援预案.docx VIP
原创力文档


文档评论(0)