较为麻烦的并查集

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

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

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

第一次 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. BZOJ 4764: 弹飞大爷

    4764: 弹飞大爷 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 4  Solved: 4[Submit][Status][Discuss] Des ...

  2. 用JS制作博客页面背景随滚动渐变的效果

    今天颓了一会,用JavaScript给我的博客园博客写了一个页面背景随滚动而渐变的效果,做完之后自我感觉良好-- 下面就以我的博客园博客为例,介绍一下如何制作这个效果! 准备 [x] 申请博客园的JS ...

  3. spring in action 学习笔记八:用@Primary 或者@Qualifier消除@Autowired引起的歧义现象

    首先解释一下@Primary和@Qualifier这两个注解的意思:@Primary的意思是在众多相同的bean中,优先使用用@Primary注解的bean.而@Qualifier这个注解则指定某个b ...

  4. linux basic ------ shell

    一般习惯把 shell 脚本语言和 shell 解释器统称为 shell,用 shell 脚本语言编写的程序简称脚本. shell 解释器 是用 c 语言写一个应用程序,它是用户使用 Unix / L ...

  5. css原生变量var()

    了解css/css3原生变量var 阮一峰css变量教程 深入学习css自定义属性(css变量)

  6. SQL记录-PLSQL包

    PL/SQL包 PL/SQL包是组逻辑相关的PL/SQL类型,变量和子程序模式对象. 程序包将有两个强制性的部分: 包装规范定义 包体或定义 包装规范定义 规范是接口到包.它只是声明的类型,变量,常量 ...

  7. POJ - 3026 Borg Maze(最小生成树)

    https://vjudge.net/problem/POJ-3026 题意 在一个y行 x列的迷宫中,有可行走的通路空格’ ‘,不可行走的墙’#’,还有两种英文字母A和S,现在从S出发,要求用最短的 ...

  8. bzoj千题计划282:bzoj4517: [Sdoi2016]排列计数

    http://www.lydsy.com/JudgeOnline/problem.php?id=4517 组合数+错排公式 #include<cstdio> #include<ios ...

  9. [整理]JS中的状态机

    /*StateMachine*/ var StateMachine = (function(){ function StateMachine(opts){ this.current = opts.in ...

  10. [译]使用chage来管理Linux密码过期时间的七个例子

    本文译自 7 Examples to Manage Linux Password Expiration and Aging Using chage 本文主要介绍命令chage的使用,译文会对原文内容会 ...