并查集
123
小鱼朵~
计算机小废宅
展开
-
1034 Head of a Gang (30 分)
1034 Head of a Gang (30 分)题目大意给出1000条以内的通话记录A B和权值w,和阈值k,如果一个团伙人数超过2人并且通话总权值超过k,令团伙里面的自身权值的最大值为头目,输出所有满足条件的团伙的头目,和他们团伙里面的人数基本思路这题可以用dfs深搜更简短地解决。因为想联系一下并查集,选择了更为繁琐地并查集法。数据结构:并查集相关的结构存放边权的二维数组G、存放点权的数组weight用来将用户字符串和用户编号做转换的结构用来存放每个团体信息的结构体数组node(下标原创 2021-09-12 20:37:50 · 92 阅读 · 0 评论 -
1107 Social Clusters (30 分)
1107 Social Clusters (30 分)题目大意给出n个人物,每个人物有k个爱好,有相同爱好的人都在同一个社团,问一个有多少个社团,并且将社团的人数按人数多少逆序输出。基本思路数据结构:定义并查集数组father,查找函数,合并函数定义数组isRoot,下标为某个社团代表人的编号,值为这个社团的人数;定义数组course,//下标为第i个爱好,值为这个爱好的代表人物编号 。基本思路:初始化并查集读入每个人物的爱好的同时,给数组course赋值,并执行合并操作统计每个社团代原创 2021-09-12 14:21:52 · 76 阅读 · 0 评论 -
1114. Family Property (25)
1114. Family Property题目大意给定每个人的家庭成员和其名下的房产,请你统计出每个家庭的人口数、人均房产套数和面积。首先在第一行输出一个家庭个数。随后按照下列格式输出每个家庭的信息:家庭成员的最小编号、家庭人口数、人均房产套数、人均房产面积。家庭信息首先按照人均面积降序输出,再按成员编号升序输出。基本思路定义并查集数组father,寻根函数,合并函数和判断某个结点是否出现的数组visit。这里的合并函数始终把结点编号更小的作为这个集合的根,这样可以保证最后的根结点的编号是这个集合里原创 2021-08-27 14:04:59 · 84 阅读 · 0 评论 -
1118 Birds in Forest (25 分)
1118 Birds in Forest (25 分)题目大意一副照片里的鸟为一颗树上的,问有多少颗树和多少只鸟,以及对于看i昂之鸟判断是否在同一颗树上。基本思路定义并查集数组father、初始化、查找和合并操作。定义一个数组exist,下标为鸟的编号,值表示鸟是否出现过。定义一个数组cnt,下标为鸟的编号,值为这棵树的鸟的数量。边读入数据,边进行合并操作,边给数组exist赋值通过数组exsit可以得到数组cnt通过数组cnt可以得到树的数量和鸟的数量通过判断两只鸟所在集合的根结点来原创 2021-08-26 17:04:32 · 100 阅读 · 0 评论