首页 > 其他分享 >POJ 2524 Ubiquitous Religions

POJ 2524 Ubiquitous Religions

时间:2024-07-16 12:52:58浏览次数:7  
标签:2524 Ubiquitous int long Religions POJ

题目链接:POJ 2524 【Ubiquitous Religions】



思路

       经典并查集模板,求集合个数。


代码

#include <iostream>

using namespace std;
#define ll long long
const int N = 5e5 + 10;

int fa[N];
int n, m;
void init(int n) {
  for (int i = 1; i <= n; i++) {
    fa[i] = i;
  }
}

int find(int x) {
  if (x == fa[x])
    return x;
  else
    return fa[x] = find(fa[x]);
}

void merge(int x, int y) {
  fa[find(x)] = find(y);
}

void solve(int x) {
  init(n + 10);

  for (int i = 1; i <= m; i++) {
    int a, b;
    cin >> a >> b;
    merge(a, b);
  }

  int num = 0;
  for (int i = 1; i <= n; i++) {
    if (fa[i] == i) {
      num++;
    }
  }
  cout << "Case " << x << ": "  << num << endl;
}

int main() {
  int x = 1;
  while (cin >> n >> m) {
    if (n == 0 && m == 0)
      break;
    solve(x++);
  }
  return 0;
}

标签:2524,Ubiquitous,int,long,Religions,POJ
From: https://www.cnblogs.com/againss/p/18304990

相关文章

  • [题解]POJ3304 Segment
    POJ3304Segment题意简述多测,每次给定\(n\)条线段,请问是否能找到\(1\)条直线,使得所有线段在该直线上的投影有公共部分。注:两点距离\(<10^{-8}\)被认为是相等的。思路分析题意转化一下,就是要我们找一条直线\(l_1\),穿过所有线段。这样对于任意直线\(l_2\perpl_1\),都满足题意。......
  • DO、DTO、BO、AO、VO、POJO定义规范
    DO、DTO、BO、AO、VO、POJO定义分层领域模型规约:DO(DataObject):与数据库表结构一一对应,通过DAO层向上传输数据源对象DTO(DataTransferObject):数据传输对象,Service或Manager向外传输的对象BO(BusinessObject):业务对象。由Service层输出的封装业务逻辑的对象AO(Applicatio......
  • poj3417
    poj3417题目其实很简单,如果知道树上差分是什么基本就是秒了。首先题面所说的,有\(n-1\)条边,保证两点之间只有一条简单路径,显然是树。剩下的边就是让这个树产生环的非树边。题面要求删除两条边,使之分为两部分,假如没有环状的结构,也就是没有那些非树边,就只需要随便删除一条边就可以......
  • POJ 15221 Entropy
    题目链接:POJ1521【Entropy】思路    典型哈夫曼树,求哈夫曼树的带权路径长度。代码#include<iostream>#include<queue>#include<string>#include<cstdio>#include<algorithm>#include<map>usingnamespacestd;intmain(){strings;......
  • POJ 3414 Pots
    题目链接:POJ3414【Pots】思路    对于每个A、B瓶的每个状态,使用结构体存储,同时pre存储操作前的状态的下标,方便回溯查询正确路径的操作,oper存储使用什么操作得到当前状态,operNumber存储到达当前状态需要几步。由于需要求的是最少的操作次数,所以使用BFS,依次增加操作次......
  • POJ 3126 Prime Path
    题目链接:POJ3126【PrimePath】思路    由于最多有100组样例,所以直接先初始化判断出1000-9999之间的数字是否是素数。然后再对每个题目所给的四位数进行BFS搜索,依次对每个数位进行枚举,使用0-9的每一个数字对每一个数位进行替换,注意千位上的数字不能为0。然后检验当前......
  • 一个项目代码讲清楚DO/PO/BO/AO/E/DTO/DAO/ POJO/VO
    在现代软件架构中,不同类型的类扮演着不同的角色,共同构成了一个清晰、模块化和可维护的系统。以下是对实体类(Entity)、数据传输对象(DTO)、领域对象(DomainObject)、持久化对象(PersistentObject)、业务对象(BusinessObject)、应用对象(ApplicationObject)、数据访问对象(DataAcces......
  • POJ 3278 Catch That Cow
    题目链接:POJ3278【atchThatCow】思路    将起点放入队列,然后一次取出队列中的元素,对其进行左右移动和乘2的移动,并判断移动后的位置是否合法,合法则放入队列中继续操作。每次取出队列中的元素后,通过假设剩下的步骤全部是左右移动一格来更新结果。代码#include<io......
  • POJ3017 Cut the Sequence
    POJ3017CuttheSequence题目大意给定一个一个长度为\(N\)的序列\(A\),要求把该序列划分成若干段,其中每一段中的数的和不大于\(M\),现在需要使得每一段中数的最大值的和最小,求该最小值。\[0\leqn\leq10^5\\0\leqm\leq10^{11}\\0\leqa_i\leq10^6\]解题思路......
  • 程序设计与算法(三)C++:第五章poj代码
    课程:北京大学程序设计与算法(三)   MOOCOJ:OpenJudge019:全面的MyString这个题也是有很多的成员函数,我们来从主函数分析一下:MyStrings1("abcd-"),s2,s3("efgh-"),s4(s1);//无参构造,有参构造,复制可以不写 MyStringSArray[4]={"big","me","about","take"......