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 Child1⋯Childk Mestate 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; Childi'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:
10
6666 5551 5552 1 7777 1 100
1234 5678 9012 1 0002 2 300
8888 -1 -1 0 1 1000
2468 0001 0004 1 2222 1 500
7777 6666 -1 0 2 300
3721 -1 -1 1 2333 2 150
9012 -1 -1 3 1236 1235 1234 1 100
1235 5678 9012 0 1 50
2222 1236 2468 2 6661 6662 1 300
2333 -1 3721 3 6661 6662 6663 1 100
Sample Output:
3
8888 1 1.000 1000.000
0001 15 0.600 100.000
5551 4 0.750 100.000
分析:纯粹的模拟题,按题目要求做即可,一开始一直过不了,后来加了个数组vis表示该人还存活,另外3、4、5测试点里有00000这个人要注意。
/**
* Copyright(c)
* All rights reserved.
* Author : Mered1th
* Date : 2019-02-27-13.50.01
* Description : A1114
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
#include<unordered_set>
#include<map>
#include<vector>
#include<set>
using namespace std;
;
struct Family{
; //m是人口数
,Avgarea=;
,area=;//总套数,总面积
bool flag=false;
}family[maxn];
struct Node{
int id,f,m,k;
vector<int> child;
double Msets,Area;
}node[maxn];
int father[maxn];
int find_Father(int x){
int a=x;
while(x!=father[x]){
x=father[x];
}
while(a!=father[a]){
int z=a;
a=father[a];
father[z]=x;
}
return x;
}
void Union(int a,int b){
int faA=find_Father(a);
int faB=find_Father(b);
if(faA!=faB){
if(faA<faB){
father[faB]=faA;
}
else if(faA>faB){
father[faA]=faB;
}
}
}
bool cmp(Family a,Family b){
if(a.Avgarea!=b.Avgarea) return a.Avgarea>b.Avgarea;
else return a.id<b.id;
}
bool vis[maxn]={false};
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif
int n,k,id,child;
scanf("%d",&n);
;i<maxn;i++) father[i]=i;
;i<n;i++){
scanf("%d",&id);
scanf("%d%d%d",&node[id].f,&node[id].m,&k);
vis[id]=true;
node[id].id=id;
){
Union(id,node[id].f);
vis[node[id].f]=true;
}
){
Union(id,node[id].m);
vis[node[id].m]=true;
}
;j<k;j++){
scanf("%d",&child);
node[id].child.push_back(child);
vis[child]=true;
Union(id,child);
}
scanf("%lf%lf",&node[id].Msets,&node[id].Area);
}
;i<maxn;i++){
int faI=find_Father(node[i].id);
if(vis[faI]){
family[faI].id=faI;
family[faI].area+=node[i].Area;
family[faI].sets+=node[i].Msets;
family[faI].flag=true;
}
}
;
;i<maxn;i++){
if(vis[i]){
family[find_Father(i)].m++;
}
if(family[i].flag==true){
num++;
}
}
;i<maxn;i++){
){
family[i].Avgarea=family[i].area/family[i].m;
family[i].Avgsets=family[i].sets/family[i].m;
}
}
sort(family,family+maxn,cmp);
cout<<num<<endl;
;i<num;i++){
printf("%04d %d %.3f %.3f\n",family[i].id,family[i].m,family[i].Avgsets,family[i].Avgarea);
}
;
}
1114 Family Property (25 分)的更多相关文章
- 【PAT甲级】1114 Family Property (25分)(并查集)
题意: 输入一个正整数N(<=10000),接着输入N行每行包括一个人的ID和他双亲的ID以及他的孩子数量和孩子们的ID(四位整数包含前导零),还有他所拥有的房产数量和房产面积.输出一共有多少个 ...
- PAT (Advanced Level) 1114. Family Property (25)
简单DFS. #include<cstdio> #include<cstring> #include<cmath> #include<vector> # ...
- PAT甲题题解-1114. Family Property (25)-(并查集模板题)
题意:给出每个人的家庭成员信息和自己的房产个数与房产总面积,让你统计出每个家庭的人口数.人均房产个数和人均房产面积.第一行输出家庭个数,随后每行输出家庭成员的最小编号.家庭人口数.人均房产个数.人均房 ...
- PAT甲级——1114 Family Property (并查集)
此文章同步发布在我的CSDN上https://blog.csdn.net/weixin_44385565/article/details/89930332 1114 Family Property ( ...
- 【刷题-PAT】A1114 Family Property (25 分)
1114 Family Property (25 分) This time, you are supposed to help us collect the data for family-owned ...
- PAT 1114 Family Property[并查集][难]
1114 Family Property(25 分) This time, you are supposed to help us collect the data for family-owned ...
- PTA 04-树5 Root of AVL Tree (25分)
题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/668 5-6 Root of AVL Tree (25分) An AVL tree ...
- PAT 甲级 1066 Root of AVL Tree (25 分)(快速掌握平衡二叉树的旋转,内含代码和注解)***
1066 Root of AVL Tree (25 分) An AVL tree is a self-balancing binary search tree. In an AVL tree, t ...
- PAT甲级:1066 Root of AVL Tree (25分)
PAT甲级:1066 Root of AVL Tree (25分) 题干 An AVL tree is a self-balancing binary search tree. In an AVL t ...
随机推荐
- Swift网络封装库Moya中文手册之Targets
Targets 使用Moya,我们首先需要定义一个target - 这通常是继承 TargetType 协议的 枚举 变量.接下来,你的app只需要处理这些targets,也就是一些你希望调用API完 ...
- main方法原来只要放在public static类中就能跑,涨知识了
接口中可以装在嵌套类对象. public interface ClassInterface { void howdy(); class Test implements ClassInterface { ...
- 老毛桃PE修改方法(屏蔽更改主页,屏蔽加装的绿色浏览器)
虽然老毛桃早就退隐了,虽然这个老毛桃不是曾经那个老毛桃~但是不得不说这个老毛桃PE还是有很多人在用~而且这个老毛桃的PE兼容性,个人认为还是很不错的.就是有暗扣,每次加装一个“绿色浏览器”和锁定主页, ...
- C++语言的一些问题
论坛上看到的有人提出的关于C++的一些问题,真是细致(下面还有回复说他对C++一知半解的),一直以为自己的C++还是可以的,可是看了之后真是内牛满面,为什么自己从来没有想的这么深入,差距真的有这么大吗 ...
- 设置MaskedTextBox控件的格式,掩码方式检验输入方式
#region 设置MaskedTextBox控件的格式,掩码方式检验输入方式 /// <summary> /// 将MaskedTextBox控件的格式设为yyyy-mm-dd格式. / ...
- radio属性添加
经常会遇到js控制radio选中和切换的问题 之前一直使用的是checked属性来完成的 但是现在发现这个属性有个大问题 今天就是用js给选中radio的赋值,使用的$().attr("ch ...
- JavaScript权威指南——词法结构(4)
标识符和保留字 1.标识符 标识符就是一个名字.在JavaScript中,标识符用来给变量.属性.函数和参数进行命名,或者用做某些循环语句中的跳转位置的标记. //变量 var identifier ...
- Mac 下配置php环境
Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例.主要内容包括: 启动Apache 运行PHP 安装MySQL 使用phpMyAdmin ...
- 20155207 2006-2007-2 《Java程序设计》第5周学习总结
20155207 2006-2007-2 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 语法与继承架构 Java中的错误以对象方式呈现为 java.lang.Throwab ...
- Sublime Text3 使用
注: 1.绿色版的某些插件有问题,导致某些插件无法使用,而且无法删除和安装,需要删除Data/Cache目录,重新安装无法使用的插件 2.绿色版无法编译python,可使用安装版安装sublime后, ...