【POJ 1703 Find them, Catch them】并查集

题目链接:http://poj.org/problem?id=1703

题目大意:

给定m个操作:

D x y:x罪犯和y罪犯不在一个团伙。(总共只有两个团伙)

A x y:询问x和y罪犯的关系

 

解题思路:

    很容易想到是并查集,但最后还是让我纠结了良久。一直MLE。

    对于每次的D x y操作,每次不仅要找到两个不同集合标志头进行更新,还要更新a数组,即存储的相对集合的标志头。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <algorithm>
 6 using  namespace std;
 7 
 8 const int maxn=100005;
 9 int f[maxn], a[maxn];  ///a数组表示的是这个集合指向另一个相对的集合
10 
11 int find(int x)
12 {
13     if(x==f[x]) return x;
14     return f[x]=find(f[x]);
15 }
16 
17 int main()
18 {
19     int T, n, m;
20     cin >> T;
21     while(T--)
22     {
23         cin >> n >> m;
24         for(int i=0; i<=n; i++)
25             f[i]=i, a[i]=0;
26         char ch[2];
27         int x, y;
28         while(m--)
29         {
30             scanf("%s%d%d",ch,&x,&y);
31             if(ch[0]=='D')
32             {
33                 x=find(x); ///注意这里指向两个不同集合的标志头
34                 y=find(y);
35                 if(!a[x]) a[x]=y;
36                 if(!a[y]) a[y]=x;
37                 a[x]=find(a[x]);///!!!这里也要注意更新,指向另一集合的标志头
38                 a[y]=find(a[y]);
39                 f[a[x]]=y;
40                 f[a[y]]=x;
41             }
42             else
43             {
44                 x=find(x),y=find(y);
45                 if(x==y)
46                     puts("In the same gang.");
47                 else if(find(a[x])==y)
48                     puts("In different gangs.");
49                 else
50                     puts("Not sure yet.");
51             }
52         }
53     }
54     return 0;
55 }

 

    

转载于:https://www.cnblogs.com/kane0526/archive/2013/02/25/2932651.html

用于在地震反演问题上测试优化算法的简单Matlab代码.rar 立即下载

相关推荐

【Python编程】Python代码可读性与Pythonic编程风格

内容概要:本文系统阐述Python代码可读性的核心原则与Pythonic风格的具体实践,重点对比显式与隐式、简单与复杂、扁平与嵌套在代码清晰度上的权衡。文章从《Python之禅》(PEP 20)出发,详解EAFP(Easier to Ask Forgiveness than Permission)与LBYL(Look Before You Leap)的异常处理哲学、鸭子类型(duck typing)与接口契约的灵活性差异、以及列表推导式与map/filter的Pythonic选择。通过代码示例展示with语句的资源管理优雅性、enumerate/zip的内置函数组合、以及collections.defaultdict/counter的数据结构简化,同时介绍命名规范(PEP 8)的语义表达力、文档字符串的信息密度控制、以及代码审查中可读性优先的评判标准,最后给出在团队协作、开源贡献、技术写作等场景下的代码风格统一策略与可读性提升技巧。 www.nbaapp.info www.nbaappzb.info www.nbazbapp.info www.nbaapp8.info www.nbazb.info

并查集POJ 1703 Find them, Catch them

POJ 1703 : Find them, Catch them 有两大帮派,现在不知道每个人的帮派情况。有两种操作,D x y 表示x和y在不同帮派,A x y查询x和y的帮派情况。 如果在同一帮派,输出In the same gang. 如果不在同一帮派,输出In different gangs. 不确定帮派情况则输出Not sure yet. 这里是POJ 11...

小酷Miki的专栏 224

【嵌入式系统】基于LVGL的轻量化GUI开发:架构剖析、控件实现与硬件移植全流程工程实践

内容概要:本文系统阐述了LVGL(Light and Versatile Graphics Library)嵌入式轻量化图形界面开发的完整技术体系,涵盖从架构原理、环境搭建、控件开发、样式美化、事件机制到硬件移植与性能优化的全流程。深入剖析LVGL的分层架构、对象化编程思想、脏区局部刷新算法、内存管理与低功耗调度机制,并通过PC仿真与可视化工具提升开发效率。全面讲解基础与高级控件的手写实现、UI样式定制、中文字库适配、动画特效开发,并以STM32等主流平台为例,详细演示硬件移植全过程。最后通过一个集数据可视化、多页面导航、参数设置与传感器联动于一体的智能触控终端综合项目,实现理论与实践的深度融合。; 适合人群:具备C语言基础和嵌入式开发经验的工程师、电子信息类专业学生、参与大创或竞赛的开发者,以及从事工业控制、物联网、智能设备研发的技术人员。; 使用场景及目标:① 掌握LVGL在无操作系统MCU上的移植与运行机制;② 实现嵌入式设备的高质量GUI界面开发,包括中文显示、流畅动画与低功耗优化;③ 构建具备多页面、数据联动与用户交互的工业级触控终端项目,满足产品化与结题展示需求。; 阅读建议:学习过程中应结合仿真环境与实际硬件平台同步实践,重视lv_conf.h配置、HAL层接口适配与调试方法,建议按照“仿真验证→代码理解→硬件移植→项目集成”的路径循序渐进,重点关注内存管理、事件机制与性能优化等易出错环节。

POJ - 1703 Find them, Catch them并查集

                  POJ - 1703  Find them, Catch them并查集)          这道题与食物链那一道题是同一类型的,但稍微简单些,题意就不说了                   比普通的并查集多了一个relation [i]数组,记录与父亲节点的关系,在并查集里的元素都是已经它们之间的关系的,在路径压缩与集合合并时不断的更新relation数...

GYH0730的博客 434

poj 1703 Find them, Catch them(带权并查集)

题目链接:poj 1703 Find them, Catch them 题目大意:在城市中有两个大的帮派,Gang Dragon 和Gang Snake,先在有n个人被抓了,警察队他们进行m次操作,操作分为两种,询问A a b, 要求判断a和b是不是属于同一个团伙,D a b 表示说a b不属于同一个团伙。 解题思路:带权并查集的简单版,权值为1表示和前一个人不属于同一个团

不慌不忙、不急不躁 1108

POJ1703 Find them, Catch them 并查集

Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 43420 Accepted: 13356DescriptionThe police office in Tadu City decides to say ends to the chaos, as launch a

chutzpah 1135

POJ 1703——Find them, Catch them并查集变形】

题目传送门 Description The police office in Tadu City decides to say ends to the chaos, as launch actions to root up the TWO gangs in the city, Gang Dragon and Gang Snake. However, the police first needs ...

NIRVANA REBIRTH 244

POJ 1703Find them, Catch them(关系并查集

POJ 1703Find them, Catch them(关系并查集) Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38951   Accepted: 11987 Description The police office in Tadu City

ACMer' 1303

POJ1703Find them, Catch them 【种类并查集

题目链接:http://poj.org/problem?id=1703 题目大意:给n个人,m次询问。A代表询问a, b之间的关系,D代表给出a, b属于不同的帮派。 我的想法: 太菜了,上课的时候没想到这种方法。 思路: 1.感觉有点像2-sat的思想,对于D给出的a, b两人属于不同帮派。我们就将a于b的对立点用并查集维护在一个集合中,也将b于a的对立点连通。 2.查询时...

a6334167的博客 172

POJ 1703 Find them, Catch them(种类并查集)

题目地址:POJ 1703 种类并查集水题。 代码如下: #include #include #include #include #include #include #include #include #include #include #include using namespace std; int bin[600000], rank[600000]; int f

scf0920 1273

并查集POJ No1703 Find them, Catch them

并查集POJ No1703 Find them, Catch them 题目链接:http://poj.org/problem?id=1703 题意:两个坏蛋属于不同的组织,给出两个坏蛋判定是否一个组织。 题解:已知每次输入的两个帮派人员 x, y; 合并 (x, y + N), (x + N, y)。判定时,如果 (x, y) 属于同一个 ...

豆子 146

【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)

内容概要:本文围绕基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化问题展开研究,旨在通过智能优化算法有效降低网络损耗、提升电压质量并增强配电系统的运行效率。研究系统地介绍了小生境粒子群算法的改进策略,构建了包含功率平衡、电压安全、设备容量等多重约束的多目标优化模型,并采用IEEE标准测试系统进行仿真验证,充分证明了该方法在处理多目标、多约束优化问题上的优越性能。全文涵盖从数学建模、算法设计、约束处理到多目标折衷解选择的完整流程,并配套提供了完整的Matlab代码实现,便于读者复现结果与进行二次开发。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事电力系统优化、智能算法研究或相关领域工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决配电网中有功与无功功率的协同优化问题,实现节能降耗与电压稳定;②学习并掌握多目标粒子群算法及其小生境改进策略在电力系统中的具体应用与实现细节;③通过Matlab代码进行仿真,加深对智能优化算法在工程实践中应用的理解,提升科研与工程实践能力。; 阅读建议:此资源以理论分析与代码实现紧密结合的方式呈现,建议读者在深入理解算法原理和模型构建的基础上,结合所提供的Matlab代码进行仿真实验,重点关注参数设置、收敛性分析与结果可视化等关键环节,从而实现从理论认知到实践验证的完整闭环。

【图论聚类算法】一种图论方法用于非参数聚类分析(Matlab代码实现)

内容概要:本文详细介绍了一种基于图论的非参数聚类分析方法,并提供了完整的Matlab代码实现。该方法通过构建数据样本间的相似性图,利用图论中的图划分技术实现聚类,能够有效处理无需预设簇数量的复杂数据结构,具有良好的适应性与鲁棒性。文中系统阐述了算法的核心原理、关键步骤及具体实现流程,并通过实验验证了其在实际应用中的有效性与优越性。; 适合人群:具备一定数学基础和Matlab编程能力,从事数据分析、模式识别或机器学习相关研究的科研人员及研究生。; 使用场景及目标:①解决传统聚类算法需预先设定簇数的局限性;②应用于存在复杂结构或非球形分布的数据集的无监督分类任务,如生物信息学、社交网络分析、图像分割等领域;③为科研工作者提供一个可复现、可扩展的图论聚类算法实现范例,促进算法的二次开发与改进。; 阅读建议:建议读者结合Matlab代码逐行理解算法实现细节,动手在不同类型的数据集上运行程序,以深入掌握图论聚类的内在机制,并鼓励在此基础上进行算法优化与性能对比研究。

高效的球形通量计算(2D)研究(Matlab代码实现)

内容概要:本文围绕“高效的球形通量计算(2D)研究”展开,基于Matlab实现相关算法,旨在提升二维空间中球形通量的计算效率与精度。研究聚焦于数值积分方法的优化,结合几何建模与数学分析手段,针对传统计算过程中存在的复杂度高、耗时长等问题,提出简化的算法流程与高效的数值求解策略。通过模块化代码设计与关键算法优化,显著提升了通量计算的运行效率与结果稳定性,适用于物理场仿真、电磁学分析、热力学建模及环境科学等需要频繁进行区域通量估算的工程与科研场景。文中提供了完整的Matlab代码实现,便于读者复现与拓展应用。; 适合人群:具备Matlab编程基础,从事科研或工程仿真的研究生、工程师及科研人员,尤其适合在物理、电磁、能源、图像处理或环境工程等领域有数值计算需求的技术人员。; 使用场景及目标:①应用于科学计算中二维球形区域内通量的高效求解,如电场、磁场或热量通量的定量分析;②服务于教学演示、算法性能对比研究及工程仿真平台开发,提升复杂积分问题的求解速度与准确性。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注算法实现细节与性能优化策略,深入理解数值积分与几何建模的结合方式,并参考文档中提到的技术方向拓展至三维场景或其他物理场的通量计算应用。

生产流水线.rar

生产流水线.rar

【Python编程】Python字典与集合底层实现原理

内容概要:本文深入剖析Python字典(dict)与集合(set)的哈希表底层实现机制,重点讲解哈希冲突解决策略、负载因子动态调整、键的可哈希性要求等核心概念。文章从开放寻址法与分离链接法的对比入手,分析Python 3.6+版本字典的有序性保证原理,探讨集合的去重逻辑与数学运算实现。通过sys.getsizeof对比不同规模数据的内存占用,展示哈希表扩容与缩容的触发条件,同时介绍frozenset的不可变特性及其作为字典键的应用场景,最后给出在成员检测、数据去重、缓存实现等场景下的性能优化建议。 https://gov.m.wwwwwy.com/zuqiuliansai/fajia/ https://tiyu.xastone.com/zuqiuliansai/dejia/ https://jinlongtool.com/zuqiuliansai/dejia/ https://careleanfoundation.com/news/zuqiu/93451.html https://www.ccwhi.com/news/zuqiu/174436.html

欧盟CRA《网络弹性法案》-全译文.pdf

欧盟CRA《网络弹性法案》-全译文.pdf

基于观测器异构冗余与柔性切换的永磁同步电机宽速域无传感器控制关键技术研究(Simulink仿真实现)

内容概要:本文围绕永磁同步电机(PMSM)在宽速域范围内的无传感器控制技术展开研究,提出了一种基于观测器异构冗余与柔性切换的复合控制策略。该策略融合高频信号注入法(适用于零低速区)与自适应滑模观测器(SMO,适用于中高速区),通过设计动态加权融合机制实现全速域内转子位置与速度的精确估计。系统在静止和低速状态下采用脉振方波高频注入实现初始定位,在中高速运行时则利用模糊超螺旋滑模观测器提升鲁棒性与动态响应性能,并引入相位同步校正与平滑切换算法以有效抑制模式切换过程中的抖动与误差累积。研究在Simulink平台构建了完整的控制系统仿真模型,全面验证了所提方法在启动精度、稳态性能、动态响应及抗负载扰动等方面的优越性。; 适合人群:具备电机控制、现代控制理论及MATLAB/Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员和工程技术人员。; 使用场景及目标:①解决永磁同步电机在无机械传感器条件下全速域运行的控制难题;②为高性能电机驱动系统(如电动汽车、精密伺服系统)提供可靠的速度与位置估算方案;③深入理解高频注入、滑模观测器、多观测器融合与平滑切换等先进控制算法的设计与实现。; 阅读建议:此资源以Simulink仿真实现为核心,不仅提供了详细的算法原理与模型架构,还包含了完整的运行结果分析。建议读者结合文中框架在MATLAB环境中动手复现仿真模型,重点关注不同速度区间下观测器的切换逻辑与参数整定过程,并通过对比实验深入理解各模块的作用机理与系统整体性能。

上一篇: 【HDU 3242 List Operations】 字符串处理
下一篇: 【HDU 1753 大明A+B】 高精度加法
baidui8622
博客等级 码龄10年 3粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值