SDUTOJ 2802--英语系列二【并查集】
来源:互联网 发布:js sleep函数 编辑:程序博客网 时间:2024/06/05 20:43
题目描述
昨天,小明期待已久的英语四六级出成绩了,不幸的是,小明没有及格。通过和自己的好友聊天,小明知道了很多好友的成绩。于是,无聊的小明自己划分了一些分数段,并统计自己的好友在每个分数段的人数(有些分数段只有一个人),他想知道人数最多的分数段有多少人。可是,小明数学不太好,你能帮一下他吗? 假设他有n名好友,好友编号为0~n-1。输入多组输入,每组第一行是两个整数n,m(2 <= n <= 10000, 0 <= m <=1000)。接下来m行,每行两个整数a,b(0 <= a,b <= n-1)。代表好友a和好友b在同一个分数段上。输出输出一行,输出人数最多的分数段有多少人。示例输入
4 21 22 36 30 12 32 4</span>
示例输出
33
模板题。。。
#include <stdio.h>int f[10001],h[10001];int find(int x){ int i,j,r; r=x; while(r!=f[r]) r=f[r]; i=x; while(i!=r) { j=f[i]; f[i]=r; i=j; } return r;}void merge(int x,int y){ int fx,fy; fx=find(x); fy=find(y); if(fx!=fy) f[fx]=fy;}int main(){ int n,m,a,b,c,d,i,k,max; while(scanf("%d%d",&n,&m)!=EOF) {for(i=0;i<n;i++)h[i]=0; for(i=0;i<n;i++) f[i]=i; while(m--) { scanf("%d%d",&a,&b); merge(a,b); }d=0;k=0;for(c=0;c<n;c++){ h[find(c)]++;} max=h[0];for(i=1;i<n;i++)if(h[i]>max)max=h[i];printf("%d\n",max); } return 0;}
0 0
- SDUTOJ 2802--英语系列二【并查集】
- SDUT2801/2802_英语系列(一)/(二)(并查集)
- 【2802】SDUTOJ (并查集模板水题2)
- SDUTOJ [2801] 并查集模板
- 并查集系列
- SDUTOJ 2797 电影节 -----非并查集解法和并查集解法(带压缩路径)
- SDUTOJ 2798 小鑫的城堡 ——并查集
- 并查集理解 【这个比较形象】 附:SDUTOJ 数据结构实验:连通分量个数
- 并查集系列题解
- 并查集例题二
- [算法系列之二十八]并查集(不相交集合)
- 并查集系列(二)——Union-find with specific canonical element
- 算法原理系列:并查集
- 【数据结构】并查集之二
- 并查集的应用(二)
- 并查集代码(二)
- 电脑专业英语系列二
- 【数据结构&&算法系列】并查集简单介绍
- 程序基石系列之C++运行时类型转换(Runtime Cast)
- 如何查找计算机科学类学术论文
- Antlr学习中遇到的问题1--.java文件无法通过编译
- ASI断点下载
- 如何从文件中读取字符串到string对象
- SDUTOJ 2802--英语系列二【并查集】
- jQuery事件之on()方法绑定多个选择器,多个事件
- 武林高手和技术高手
- build.prop内容详细介绍(转)
- 修改linux默认jdk方法详解
- 首尾相连数组的最大子数组和 淘宝面试题
- Java中的String对象是不可变的吗?
- ParameterizedType获取java泛型参数类型
- matlab eval 可变变量名 赋值