#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. Linux 笔记 - 第十章 Shell 基础知识

    博客地址:http://www.moonxy.com 一.前言 Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是一 ...

  2. asp.net配置全局应用程序类 巧妙达到定时生成静态页面

    //在项目里添加一个"全局应用程序类(Global Application Class)",在里面写这样的代码: public class Global : System.Web. ...

  3. 新版本SpringCloud sleuth整合zipkin

    SpringCloud Sleuth 简介 Spring Cloud Sleuth为Spring Cloud实现了分布式跟踪解决方案. Spring Cloud Sleuth借鉴了Dapper的术语. ...

  4. Java程序连接数据库

    /** * 了解: 利用 Driver 接口的 connect 方法获取连接 */ // 第一种实现 /** * 了解: 利用 Driver 接口的 connect 方法获取连接 */ @Test p ...

  5. RxSwift 中的调度器

    与 ReactiveCocoa 相比,Rx 的一大优势就是更丰富的并发模型.提到并发,就不得不提多线程.在 RxSwift 中,与线程对应的概念就是调度器,本文就调度器做些介绍,包括并发调度器.串行调 ...

  6. kafka删除弃用的groupid

    登录zookeeper客户端 cd zookeeper-3.4.10 sh zkCli.sh 查看groupid信息 [zk:localhost:2181(CONNECTED) 1] ls /cons ...

  7. opencv边缘检测

    人眼怎么识别图像边缘? 比如有一幅图,图里面有一条线,左边很亮,右边很暗,那人眼就很容易识别这条线作为边缘.也就是像素的灰度值快速变化的地方. sobel算子 sobel算子是一个离散差分算子. 图像 ...

  8. MapReduce之Job提交流程源码和切片源码分析

    hadoop2.7.2 MapReduce Job提交源码及切片源码分析 首先从waitForCompletion函数进入 boolean result = job.waitForCompletion ...

  9. IDEA 学习笔记之 Maven项目开发

    Maven项目开发: 配置Maven: 新建Maven项目: 选择webapp: 和eclipse一样,设置: 修改maven配置,添加一个新属性,可以加快项目创建速度: 完成: 新建java和tes ...

  10. ELK 学习笔记之 elasticsearch elasticsearch.yml配置概述

    elasticsearch.yml配置概述: 设置集群名字 cluster.name 定义节点名称 node.name 节点作为master,但是不负责存储数据,只是协调. node.master: ...