传送门

找最大连通分量,没有一对pairs就输出1

#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;const int MAXN = 1e7 + 2;
int pre[MAXN];
int pairs;
int opt;int f(int x)
{int f0 = x, f1 = x;for (; pre[f0] > 0;)f0 = pre[f0];for (; pre[f1] > 0;){int t = f1;f1 = pre[f1];pre[t] = f0;}return f0;
}void u(int a, int b)
{int f1 = f(a);int f2 = f(b);if (f1 != f2){if (pre[f1] <= pre[f2]){pre[f1] += pre[f2];if (-pre[f1] > opt) opt = -pre[f1];pre[f2] = f1;}else{pre[f2] += pre[f1];if (-pre[f2] > opt) opt = -pre[f2];pre[f1] = f2;}}
}int main()
{for (; ~scanf("%d", &pairs);){int a, b;memset(pre, -1, sizeof pre);opt = 1;                               // n=0 时直接输出 1     又是这种坑点,服for (int i = 0; i < pairs; i++){scanf("%d%d", &a, &b);u(a, b);}printf("%d\n", opt);}return 0;
}

转载于:https://www.cnblogs.com/CrossingOver/p/10704893.html

HDU 1856 More is better相关推荐

  1. HDU(1856),裸的带权并查集

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题意:朋友圈问题,A和B是朋友,B和C是朋友则A和C也是朋友,依次类推,题目的意思就是求最大的朋 ...

  2. HDU 1856 More is better【并查集】

    解题思路:将给出的男孩的关系合并后,另用一个数组a记录以find(i)为根节点的元素的个数,最后找出数组a的最大值 More is better Time Limit: 5000/1000 MS (J ...

  3. HDU 1856 Brave Game(巴什博奕)

    Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 【HDU - 1856】 More is better(并查集)(还需要空间优化。。)

    题干: Mr Wang wants some boys to help him with a project. Because the project is rather complex, the m ...

  5. hdu 1856 并查集——ac的不一定正确

    这次深深体会到ac的代码不一定正确.呵呵.cry_mas前一段才和我说起.我还半信半疑.话说好久以前他就说过类似的话,当时水平太菜了.现在深深体会到ac的代码不一定正确.这要坑死了啊,正式比赛碰到真是 ...

  6. hdu 1856 并查集 求最大的子树含有元素的个数

    这道题数据有点大, 我再次 被 cin>> he  cin<<out 多次超时, 改成 scanf 和 printf  后一次ac . 欲哭无泪啊! 完全是 并查集 ,模板 , ...

  7. HDU 1856 More is better (并查集)

    #include<stdio.h> #include<string.h>int ff[100005];//ff[x]表示x的父节点 int ss[100005];// int ...

  8. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

  9. 并查集入门+初级专题训练

    介绍   摘自罗勇军,郭卫斌的<算法竞赛入门到进阶>上的说明:   并查集(Disjoint Set)是一种非常精巧而且食用的数据结构,它主要用于处理一些不相交集合的合并问题.经典的例子有 ...

最新文章

  1. php调用c windows,php:在WINDOWS中设置计划任务执行PHP文件_PHP教程
  2. win7中VS2010中安装CSS3.0问题解决方法
  3. 软件工程师生存指南:面试准备、工作经验和实用工具
  4. Constructing the Array CodeForces - 1353D(数据结构+分类+建设性算法)
  5. leetcode 两数相加
  6. 基于阿里云物联网平台,我们这样实现简易出入监控
  7. Word2Vec教程-Skip-Gram模型
  8. c语言超长整数加法计算,两个超长正整数的加法
  9. 在线文本按列截取工具
  10. 华三 h3c Ftp、Telnet配置
  11. html特殊字符转义倒三角,html,转义字符对照表,部分x
  12. WPF实现DoEvents
  13. 网易裁员,让保安把身患绝症的我赶出公司。我在网易亲身经历的噩梦!
  14. ZOJ 3551 Bloodsucker(概率dp)
  15. 智能优化与机器学习结合算法实现数据预测matlab代码清单
  16. protues 软件介绍
  17. 【统计学笔记】如何判断变量间相关关系,并建立一元线性回归模型?
  18. 深度学习——学习率衰减(learning rate decay)
  19. 跳转微信小程序和支付宝小程序
  20. Ubuntu开启wifi热点

热门文章

  1. 红队中易被攻击的一些重点系统漏洞整理
  2. HTTP协议中的Content-Encoding
  3. Spring Boot学习笔记-进阶(3)
  4. 《leetcode》first-missing-positive
  5. wordcloud用来制作词云
  6. jquery ajax的例子
  7. Spark内存管理(1)—— 静态内存管理
  8. spark RDD创建方式:parallelize,makeRDD,textFile
  9. elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
  10. Linux内核很吊之 module_init解析 (下)【转】