并查集练习(0743) SWUST OJ

#include<iostream>
#include<cstring>
using namespace std;
int a[1000005];
int n,m,l,ci,di;

int root(int x)        //找到根节点
{
    int r = x;
    while(r != a[r])
        r = a[r];
    int i = x,j;
    while(i != r)    //压缩路径
    {
        j = a[i];
        a[i] = r;
        i = j;
    }
    return r;
 } 

void mix(int x,int y)      //混合
{
    int fx = root(x),fy = root(y);
    if(fx != fy)
        a[fy] = fx;        //根节点的值覆盖
}

int main()
{
    int i,j,t1,t2;
//    memset(a,0,sizeof(a));        //过程中超时了,除去这一条就AC了
    cin>>n>>m;
    for(i = 1;i <= n;i++)
        a[i] = i;
    for(i = 1;i <= m;i++)
    {
        cin>>ci>>di;
        mix(ci,di);
    }
    cin>>l;
    for(i = 1;i <= l;i++)
    {
        cin>>t1>>t2;
        if(root(t1) != root(t2))
            cout<<"They aren‘t relative!"<<endl;
        else
            cout<<"They are relative!"<<endl;
    }

    return 0;
 } 

这是自学的并查集,然后在oj上敲的题。有关并查集的学习可以百度。

                                                                           -----15:44:28 2017-06-10

时间: 2024-10-18 18:53:38

并查集练习(0743) SWUST OJ的相关文章

swust oj 856--Huge Tree(并查集)

题目链接:http://acm.swust.edu.cn/problem/856/ Time limit(ms): 1000 Memory limit(kb): 10000 There are N trees in a forest. At first, each tree contains only one node as its root. And each node is marked with a number. You're asked to do the following two

[Swust OJ 772]--Friend(并查集+map的运用)

题目链接:http://acm.swust.edu.cn/problem/772/ Time limit(ms): 1000 Memory limit(kb): 65535 Description 每个人都有朋友,朋友也有很多种,比如: 石友--情谊坚贞的朋友. 挚友--志同道合的朋友. 益友--于己有帮助的朋友. 网友--在互联网结识的朋友. 闺友--闺房中无话不谈的朋友. 君子交:指道义之交,即在道义上相互支持的朋友. 竹马之交:少年时骑竹马为戏的朋友,指自幼相交的朋友,等等. 现在dear

swust oj 1091--土豪我们做朋友吧(并查集,最值维护)

题目链接:http://acm.swust.edu.cn/problem/1091/ Time limit(ms): 1000 Memory limit(kb): 32768 人都有缺钱的时候,缺钱的时候要是有个朋友肯帮助你,那将是一件非常幸福的事情.有N个人(编号为1到N),一开始他们互相都不认识,后来发生了M件事情,事情分为2个种类,1:A和B成为了朋友,并且A的所有朋友都成了B的朋友,B的所有朋友也都成了A的朋友.2:A缺钱了,请求帮助,他需要向他朋友中钱最多的请求帮助,若不止一位,选择编

【算法学习笔记】41.并查集 SJTU OJ 1283 Mixture

---恢复内容开始--- Description CC非常喜欢化学,并且特别喜欢把一大堆液体倒在一起. 现在CC有n种液体,其中m对会发生反应,现在她想把这n种液体按某种顺序倒入一个容器内,让她获得最刺激的体验,使危险系数尽量大. 我们可以这样计算危险系数,一开始容器内没有任何液体,危险系数为1.每次液体倒入容器时,若容器内已有一种或多种液体会与这种液体发生反应,则危险系数会乘2,否则危险系数不变. 请你求出把这n种液体倒在一起的最大危险系数. Input Format 第一行为两个数n和m.

ZOJ 3521 Fairy Wars oj错误题目,计算几何,尺取法,排序二叉树,并查集 难度:2

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3521 ATTENTION:如果用long long 减小误差,这道题只能用%lld读入 首先需要判断哪些点是相互挨着的,这样比直接维护哪些集合是冰冻住的简单 按照x为主,y为辅排序,在数组上尺取,当head与tail的x坐标相差大于l/2则把head向后移动直到x坐标满足条件, 那么对于head到tail,现在的问题就只剩下检测出哪些点之间y间距小于l/2,把它们都按照p

洛谷OJ P1196 银河英雄传说(带权并查集)

题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦 创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山压 顶集团派宇宙舰队司令莱因哈特率领十万余艘战舰出征,气吞山河集团点名将杨 威利组织麾下三万艘战舰迎敌. 杨威利擅长排兵布阵,巧妙运用各种战术屡次以少胜多,难免恣生骄气.在 这次决战中,他将巴米利恩星域战场划分成30000列,每列依次编号为1, 2, …, 30000.之后,他把自己的战舰也依次编号

台州 OJ 2649 More is better 并查集

描述 Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements. Mr Wang selected a room big enough to hold the boys. The boy who are no

【算法学习笔记】44. 并查集补充 SJTU OJ 3015 露子的星空

[题目描述] 已经深夜了,露子仍然在公园里仰望星空.你走近后,她对你说:“呜—,你看夜空中的星星.它们本来都是孤独地毫无联系,但人们赋予了它们各种地联想,在它们之间连上了线,便形成了夜空中无数的星座.”你回答:“是啊.为什么我们不自己创造一个美丽的星空呢?” 假设夜空中一共有n颗星星,它们初始时都没有连线.接下来,露子会给你m条指令.一共有以下三种指令: 1.在某两颗星星间连线.(可能会重复连接两颗星星) 2.询问你当前夜空中一共有多少个星座. 3.某两颗星星当前是否属于同一个星座. 其中星座是

并查集详解 (转)

http://blog.csdn.net/dellaserss/article/details/7724401 我从CSDN转的文章,原文作者我也不懂是谁,文章写得真的是诙谐幽默,使得内容更容易理解了. 来看一个实例,杭电OJ 1232畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可).问最少还需要建