hdu 3635(并查集+路径压缩变形)
解题思路:这道题想了我好久,因为我把城市的编号一起考虑进去了,结果想了好久都没A,最后看了别人的题解居然都没有考虑到城市的编号,不考虑城市编号的问题的话就是一个很水的并查集了。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int MAXN=10000+10;
int parent[MAXN];
int _count[MAXN];
int Rank[MAXN];
int n,m;void Initiate()
{for(int i=1;i<=n;i++){parent[i]=i;_count[i]=0;Rank[i]=1;}
}int Find(int x)
{if(x==parent[x]) return x;else {int tmp=parent[x];parent[x]=Find(parent[x]);_count[x]+=_count[tmp];//更新转移次数}return parent[x];
}void Union(int R1,int R2)
{int r1=Find(R1);int r2=Find(R2);if(r1==r2)return ;else {parent[r1]=r2;_count[r1]++;Rank[r2]+=Rank[r1];Rank[r1]=0;}
}int main()
{int _case,t=1;scanf("%d",&_case);while(_case--){scanf("%d%d",&n,&m);Initiate();printf("Case %d:\n",t++);for(int i=1;i<=m;i++){char str[11];scanf("%s",str);if(str[0]=='T'){int u,v;scanf("%d%d",&u,&v);Union(u,v);}else if(str[0]=='Q'){int x;scanf("%d",&x);int y=Find(x);printf("%d %d %d\n",y,Rank[y],_count[x]);}}}return 0;
}
hdu 3635(并查集+路径压缩变形)相关推荐
- Rochambeau POJ - 2912 (枚举和加权并查集+路径压缩)找唯一裁判
题意:有n个人玩石头剪刀布,有且只有一个裁判.除了裁判每个人的出拳形式都是一样的. a<b表示b打败a,a=b表示a和b出拳一样,平手.a>b表示a打败b. 给出m个回合的游戏结果,问能否 ...
- poj 3728 The merchant// lca(倍增实现) + dp || tarjan+并查集路径上dp
poj 3728 The merchant// lca(倍增实现) + dp Time Limit: 3000MS Memory Limit: 65536K Total Submissions: ...
- 并查集 路径压缩(具体解释)
拿HDU 1232举例. 题解: 首先在地图上给你若干个城镇,这些城镇都能够看作点,然后告诉你哪些对城镇之间是有道路直接相连的.最后要解决的是整幅图的连通性问题.比方任意给你两个点.让你推断它们是否连 ...
- hdu 1232 并查集
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了.以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定.不分享出来真是对不起party了.(party:我靠,关我嘛事啊?我跟你很熟么?) ...
- hdu 5606(并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5606 解题思路: 这题实际上是要找一些连通的节点,使得边上的权值都为0. 很明显,首先把权值为0的边都 ...
- 并查集路径压缩_并查集(UnionFind)技巧总结
什么是并查集 在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题.有一个联合-查找算法(Union-find Algorithm)定义了两个用 ...
- 并查集路径压缩_第二十五天:并查集
今天是释然发题解的第二十五天,以后会经常和大家分享学习路上的心得,希望和大家一起进步,一起享受coding的乐趣 本文约1400字,预计阅读5分钟 昨天我们学习了动态规划之线性规划,忘记的小伙伴们可以 ...
- HDU 5441并查集 by cyl
HDU 5441 题意: 杰克喜欢旅游,从城市a到城市b是他最喜欢的,现在有n个城市m个路. 当杰克在从城市a到城市b 的时候需要坐车,但是需要有等待时间t,他无法忍受超过x 的等待时间. ...
- hdu 4907(并查集)
Task schedule Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Pr ...
最新文章
- SAP Web Intelligence初探
- Python基础练习题,你会吗?
- spark 常用函数介绍(python)
- delphi image 编辑器_照片拼图编辑器app下载-照片拼图编辑器下载 v1.0.0 安卓版
- 信息学奥赛一本通 1193:吃糖果 | OpenJudge NOI 2.6 1944:吃糖果
- 物体重心的特点是什么_从重心变化看熊晃动作的学练要点
- AI 对不起 我还爱着你
- spring 属性注入
- matlab求取积分
- PCB和PCBA设计及标准
- c语言编写dxf文件吗,判断dxf文件的版本
- 被野性消费的黄桃罐头,还能火多久!
- java神雕侠侣1古墓情缘游戏攻略_神雕侠侣古墓派后期攻略讲解
- 电脑上最值得安装的软件,这10款里一定有你想要的
- 推荐系统架构与机器学习基础理论
- 华为机试真题 Java 实现【数字涂色】
- Kooboo CMS - 之后台注册用户流程方法。
- 香港理工大学智能计算实验室招收PhD/博士后/研究助理
- 二叉树的构造以及基本操作
- 史上最硬核全套Java视频教程(学习路线+视频+配套资料)