较为麻烦的并查集

主要是我的模板是错的检查了好久。。。。

先是输入 把每个家庭连在一起

输出的家庭编号为该家庭所有编号的最小值  在并查集里面完成

第一次 0~n-1遍历储存好 家庭编号 和房子面积和数量

第二次0~N遍历 遍历家庭人数

第三遍 处理人均面积和家庭数量和人均数量

#include<bits/stdc++.h>
using namespace std;
int f[];
int find1(int x)
{
int j=x;
while(j!=f[j])
j=f[j];
int cur=x;
if(cur!=j)
{
int t=f[cur];
f[cur]=j;
cur=t;
}
return j;
} void union1(int x,int y)
{
int x1=find1(x);
int y1=find1(y);
if(x1<y1)f[y1]=x1;
else f[x1]=y1;
return ;
} struct peo
{
int id;
double n,s;
int num;
int flag;
peo()
{
id=n=s=flag=num=;
}
}s[],ans[];
int vis[]={}; bool cmp(struct peo a,struct peo b)
{
if(a.s!=b.s)return a.s>b.s;
else
return a.id<b.id;
} int main()
{
for(int i=;i<;i++)f[i]=i;
int k,q;
scanf("%d",&k);
int a,b,c;
for(int i=;i<k;i++)
{
scanf("%d%d%d",&a,&b,&c);
s[i].id=a;
vis[a]=;
if(b!=-)
{union1(a,b);vis[b]=;}
if(c!=-)
{union1(a,c);vis[c]=;}
scanf("%d",&q);
while(q--)
{
scanf("%d",&b);
if(b!=-)
{union1(b,a);vis[b]=;}
}
scanf("%lf%lf",&s[i].n,&s[i].s);
} for(int i=;i<k;i++)
{
int a=find1( s[i].id );
ans[ a ].id=a;
ans[ a ].s+=s[i].s;
ans[ a ].n+=s[i].n;
ans[ a ].flag=;
} for(int i=;i<;i++)
{
if(vis[i])
{
int a=find1( i );
ans[a].num+=;
}
} int cnt=;
for(int i=;i<;i++)
{
if(ans[i].flag)
{ cnt++;
ans[i].s=(double)ans[i].s/ans[i].num;
ans[i].n=(double)ans[i].n/ans[i].num;
}
}
sort(ans,ans+,cmp);
printf("%d\n",cnt);
for(int i=;i<cnt;i++)
printf("%04d %d %.3lf %.3lf\n",ans[i].id,ans[i].num,ans[i].n,ans[i].s);
}

家庭房产L2-007的更多相关文章

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

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

  2. L2-007. 家庭房产

    L2-007. 家庭房产 题目链接:https://www.patest.cn/contests/gplt/L2-007 并查集 初学,看这题的时候完全没有什么好的想法,参考了@yinzm的blog用 ...

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

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

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

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

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

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

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

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

  7. pat 团体天梯赛 L2-007. 家庭房产

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

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

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

  9. PAT L2-007 家庭房产

    https://pintia.cn/problem-sets/994805046380707840/problems/994805068539215872 给定每个人的家庭成员和其自己名下的房产,请你 ...

  10. pat 团体赛练习题集 L2-007. 家庭房产

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

随机推荐

  1. [SDOI2009]Bill的挑战——全网唯一 一篇容斥题解

    全网唯一一篇容斥题解 Description Solution 看到这个题,大部分人想的是状压dp 但是我是个蒟蒻没想到,就用容斥切掉了. 并且复杂度比一般状压低, (其实这个容斥的算法,提出来源于y ...

  2. mysql新版本问题

    异常错误:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.c ...

  3. SQL Server手把手教你使用profile进行性能监控

    介绍 经常会有人问profile工具该怎么使用?有没有方法获取性能差的sql的问题.自从转mysql我自己也差不多2年没有使用profile,忽然profile变得有点生疏不得不重新熟悉一下.这篇文章 ...

  4. final的用法---java基础知识

    Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量. final类不能被继承,没有子类,final类中的方法默认是final的. final方法 ...

  5. INF文件详解

    安装信息(Setup Information)文件是Windows系统支持的一种安装信息存放文件,一般以INF作为扩展名,因此也叫INF文件.安装信息INF文件与Windows内建的安装服务引擎(AP ...

  6. 质数——6N±1法

    6N±1法求素数 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…) 显然,当N≥1时,6N,6N+2,6N+3,6N+4都 ...

  7. POJ 2965 The Pilots Brothers' refrigerator (暴力枚举)

    https://vjudge.net/problem/POJ-2965 与poj-1753相似,只不过这个要记录路径.poj-1753:https://www.cnblogs.com/fht-lito ...

  8. Asp.Net中索引器的用法

    索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员. 一.索引器特性 1.g ...

  9. iOS 提交应用过程出现的错误及#解决方案#images can't contain alpha channels or transparencies

        本文永久地址为http://www.cnblogs.com/ChenYilong/p/3977542.html ,转载请注明出处.    当你试图通过<预览>"导出&qu ...

  10. linux系统上次启动时间查看

    uptime [root@node2 ~]# uptime 18:58:47 up 12 min, 2 users, load average: 0.01, 0.07, 0.07 [root@node ...