#include <cstdio>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
const int N=1e4+;
const int inf=1e8;
int n;
int f[N];
set<int>st,tt;
set<int>::iterator it;
struct node{
int ns=,S=;
}peo[N];
struct edge{
int Min=inf,num=;
double avgHouse=,avgS=;
bool operator < (const edge x)const &{
if(x.avgS==avgS){
return x.Min>Min;
}
return x.avgS<avgS;
}
}res[N];
vector<edge>sus;
void init(){
for (int i=; i<N; i++) {
f[i]=i;
}
}
int query(int x){
int r=x;
while (f[x]!=x) {
x=f[x];
}
f[r]=x;
return x;
}
void join(int x,int y){
int fx=query(x);
int fy=query(y);
if(fx!=fy){
f[fx]=fy;
}
}
void checkjoin(int x,int d,int m){
st.insert(x);
if(d!=- && m!=-){
st.insert(d);
st.insert(m);
join(d, m);
join(x, d);
}else if(d!=-){
st.insert(d);
join(x, d);
}else if(m!=-){
st.insert(m);
join(x, m);
}
}
int main(){
int x,d,m,k,c;
init();
scanf("%d",&n);
for (int i=; i<n; i++) {
scanf("%d%d%d",&x,&d,&m);
checkjoin(x, d, m);
scanf("%d",&k);
for (int j=; j<k; j++) {
scanf("%d",&c);
st.insert(c);
join(c, x);
}
scanf("%d%d",&peo[x].ns,&peo[x].S);
}
for (it=st.begin(); it!=st.end(); it++) {
x=*it;
int fx=query(x);
if (x==fx) tt.insert(x);
res[fx].Min=min(res[fx].Min, x);
res[fx].num++;
res[fx].avgHouse+=peo[x].ns;
res[fx].avgS+=peo[x].S;
}
for (it=tt.begin(); it!=tt.end(); it++) {
x=*it;
res[x].avgHouse/=res[x].num;
res[x].avgS/=res[x].num;
sus.push_back(res[x]);
}
sort(sus.begin(), sus.end());
printf("%d\n",(int)sus.size());
for (int i=; i<sus.size(); i++) {
printf("%04d %d %.3lf %.3lf\n",sus[i].Min,sus[i].num,sus[i].avgHouse,sus[i].avgS);
}
return ;
}

L2-007. 家庭房产(并查集)的更多相关文章

  1. PATL2-007. 家庭房产-并查集

    L2-007. 家庭房产 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定每个人的家庭成员和其自己名下的房产,请你统计出每个 ...

  2. TOJ3660家庭关系(并查集+hash+图的连通性)

    家庭关系   时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte 总提交: 38            测试通过: 9 描述 给定若干家庭成员之间的关系 ...

  3. L2-007 家庭房产 (25 分) (并查集)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805068539215872 题目: 给定每个人的家庭成员和其自己名 ...

  4. 天梯赛 L2-007. (并查集) 家庭房产

    题目链接 题目描述 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式 ...

  5. GPLT L2-007 家庭房产 (并查集)

    题意: 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 思路: 输入和输出各构造一个结构体,利用并查集归并输入,枚举编号进行输出. #include &l ...

  6. L2-007. 家庭房产(并查集)*

    L2-007. 家庭房产 参考博客 #include <iostream> #include <cstdio> #include <cstring> #includ ...

  7. L2-007 家庭房产 (25分) 并查集

    题目链接 题解:并查集把一个家的并在一起,特殊的一点是编号大的并到小的去.这个题有个坑编号可能为0000,会错数据3和5. 1 #include<bits/stdc++.h> 2 usin ...

  8. 团体程序设计天梯赛-练习集L2-007. 家庭房产

    L2-007. 家庭房产 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定每个人的家庭成员和其自己名下的房产,请你统计出每个 ...

  9. 【PAT-并查集-水题】L2-007-家庭房产

    L2-007. 家庭房产 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下 ...

随机推荐

  1. Swoole入门到实战 打造高性能 赛事直播平台(完整版)

    Thinkphp+Swoole入门到实战打造高性能赛事直播平台 第1章 课程介绍 欢迎大家来到swoole的课程!本章主要是介绍了swoole的一些特性,以及使用场景,并且分享了swoole在其他公司 ...

  2. jsp学习:jsp学习阶段性总结2019.9.21

    Jsp学习 jsp语法格式: 脚本程序:<% 代码片段 %> jsp声明:<%! declaration; [ declaration; ]+ ... %> 表达式:<% ...

  3. cython的安装

    cython 在linux(ubuntu)下安装 sudo apt-get install cython 安装后  输入 cython 即可验证是否安装成功

  4. 你好,C语言

    对于我来说,C语言就和陌生人一样,对他完全不了解,更不要提什么C++了,这就要我主动和他打招呼,深入认识了解它了哈.目前对于C语言的理解,只知道他的的功强大,能操作硬件,编写各类驱动,强悍的LINUX ...

  5. PTA A1009&A1010

    第五天 A1009 Product of Polynomials (25 分) 题目内容 This time, you are supposed to find A×B where A and B a ...

  6. 机器学习常用性能度量中的Accuracy、Precision、Recall、ROC、F score等都是些什么东西?

    一篇文章就搞懂啦,这个必须收藏! 我们以图片分类来举例,当然换成文本.语音等也是一样的. Positive 正样本.比如你要识别一组图片是不是猫,那么你预测某张图片是猫,这张图片就被预测成了正样本. ...

  7. gym102201E_Eat Economically

    题意 给\(2n\)个物品,分别有\(a,b\)属性,对于\(i=1...n\),选择\(i\)个\(a\)属性和\(i\)个\(b\)属性,且每个物品只能作为一种属性的贡献,求最小的值. 分析 看了 ...

  8. Maven 梳理-自动创建Maven项目(非web)

    mvn archetype:create和mvn archetype:generate create is deprecated in maven 3.0.5 and beyond,在maven3.0 ...

  9. java8 函数接口

    [前言] java8新特性 java8 Optional使用总结 java8 lambda表达式 Java 8 时间日期使用 1.函数式接口新特性 java8中引入了函数式接口新特性,使用@Funct ...

  10. 在创建activiti5..22所需的25张表时 ,所用的方法和遇到的问题。

    最近在学习关于activiti流程设计的相关内容,首先第一步就需要了解25张activiti相关的表,具体的每张表的含义 请自行百度. 这里讲一下 用java代码生成所需要的25张表,很简单: pub ...