1114 Family Property (25 分)
This time, you are supposed to help us collect the data for family-owned property. Given each person’s family members, and the estate(房产)info under his/her own name, we need to know the size of each family, and the average area and number of sets of their real estate.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤1000). Then N lines follow, each gives the infomation of a person who owns estate in the format:
ID Father Mother k Child.. M Area
where ID
is a unique 4-digit identification number for each person; Father
and Mother
are the ID
‘s of this person’s parents (if a parent has passed away, -1
will be given instead); k (0≤k≤5) is the number of children of this person; Child**i‘s are the ID
‘s of his/her children; Mestate is the total number of sets of the real estate under his/her name; and Area
is the total area of his/her estate.
Output Specification:
For each case, first print in a line the number of families (all the people that are related directly or indirectly are considered in the same family). Then output the family info in the format:
ID
M
AVGsets AVGarea
where ID
is the smallest ID in the family; M
is the total number of family members; AVGsets is the average number of sets of their real estate; and AVGarea is the average area. The average numbers must be accurate up to 3 decimal places. The families must be given in descending order of their average areas, and in ascending order of the ID’s if there is a tie.
Sample Input:
1 | 10 |
Sample Output:
1 | 3 |
作者: CHEN, Yue
单位: 浙江大学
时间限制: 200 ms
内存限制: 64 MB
代码长度限制: 16 KB
题目大意
给出n个人以及他们的亲属、财产、房产面积,要求统计家族总人数、人均财产、人均面积。按人均面积递减排序,如果相同按id递增排序。
分析
一开始想用联通分量做,不是很方便。后来才想到了并查集,还是不熟练。
输入时处理家族关系。然后根据出现过的id找到他的家族,统计家族信息。然后根据出现过的家族id,存入一个新的vector。排序输出。
代码
1 |
|