PAT a1114

PAT A1114 Family Property (25分) GPLT L2-007 家庭房产 (25分) PAT A1114 Family Property (25分) GPLT L2-007 家庭房产 (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 un... 阅读详情

目的:统计家庭个数,输出每个家庭人数和人均住宅,人均居住面积。

输入:

N  单个小家庭的个数

小家庭信息格式

名字 父母 孩子个数  孩子1 孩子2....住宅数  居住面积

输出:

大家庭个数

大家庭中id最小的人  人数  平均居住房子个数 平均居住面积

算法:

并查集可以用来统计大家庭个数,而且把id最小的作为父亲结点容易找到每个家庭的代表。

小家庭中每个人用vis[]来记录,若是出现了就是true,若没有就是false。

以set存每个小家庭在大家庭的代表,用来统计大家庭的个数。

以每个大家庭的代表为名建立三个unordered_map,分别统计每个大家庭的人数,住宅数目,住宅面积。

再将这三项和代表名字同意为一个结点,建立链表。再对链表排序。输出。

#include<stdio.h>
#include<algorithm>
#include<unordered_map>
#include<vector>
#include<set>

using namespace std;

const int maxn = 1010;
struct node{
    int g;
    int a;
};
struct answer{
    int id;
    int m;
    double avg;
    double ava;
};

int father[10010];
unordered_map<int,node> info;
unordered_map<int,int>  member,estate,area;
unordered_map<int,bool>  vis;
vector<answer> ans;
int N,M,A;
int findfather(int x)
{
    int F;
    if(x==father[x]) return x;
    else
    {
        F = findfather(father[x]);
        father[x] = F;
        return F;
    }
}
void Union(int a,int b)
{
    int fa = findfather(a);
    int fb = findfather(b);
    if(fa<fb)
    {
        father[fb] = fa;
    }else
    {
        father[fa] = fb;
    }
}
bool cmp(answer a,answer b)
{
    if(a.ava!=b.ava)
    {
        return a.ava>b.ava;
    }else
    {
        return a.id<b.id;
    }
}
int main()
{
    for(int i=0;i<10010;i++)
    {
        father[i] = i;
    }
    scanf("%d",&N);

    int u,v;
    for(int i=0;i<N;i++)
    {
        scanf("%d",&u);
        vis[u] = true;
        for(int j=0;j<2;j++)
        {
            scanf("%d",&v);
            if(v!=-1)
            {
                vis[v] = true;
                Union(u,v);
            }
        }
        int k;
        scanf("%d",&k);
        for(int j=0;j<k;j++)
        {
            scanf("%d",&v);
            vis[v] = true;
            Union(u,v);
        }
        scanf("%d%d",&M,&A);
        info[u] = node{M,A};
    }
    set<int> family;
    for(unordered_map<int,bool>::iterator it = vis.begin();it!=vis.end();it++)
    {
        family.insert(findfather(it->first));
        member[findfather(it->first)]++;
    }
    for(unordered_map<int,node>::iterator it = info.begin();it!=info.end();it++)
    {

        estate[findfather(it->first)] += it->second.g;
        area[findfather(it->first)] += it->second.a;
    }
    printf("%d\n",family.size());
    for(set<int>::iterator it=family.begin();it!=family.end();it++)
    {
        int m;
        double g,a;
        m = member[*it];
        g = (1.0*estate[*it])/m;
        a = (1.0*area[*it])/m;
        ans.push_back(answer{*it,m,g,a});
    }
    sort(ans.begin(),ans.end(),cmp);
    for(int i=0;i<ans.size();i++)
    {
        printf("%04d %d %.3f %.3f\n",ans[i].id,ans[i].m,ans[i].avg,ans[i].ava);
    }
    return 0;

}

 

23数字图像置乱技术(matlab程序) 所谓“置乱”,就是将图像的信息次序打乱,a像素移动到b像素位置上,b像素移动到c像素位置上,……,使其变换成杂乱无章难以辨认的图片。数字图像置乱技术属于加密技术,是指发送发借助数学或者其他领域的技术,对一幅有意义的数字图像做变换,使之变成一幅杂乱无章的图像用于传输。在图像传输过程中,它通过对图像像素矩阵的重排,破坏了图像矩阵的相关性,使非法截获者无法从杂乱无章的图像中获得原图像信息,以此实现信息的加密。接收方经去乱解密可恢复原图像。 阅读详情

相关推荐

增量式PID的P和I怎么理解(一)

增量式PID的P、I理解之推翻片 据我所知的资料里关于PID三个参数的理解是这样的:(我这里只说P和I,先不说D) P的作用:比例P可以加快系统调节速度,P过小调节时间变长,响应性不够,P越大响应性越高超调也越严重,过大的P会使系统振荡。 I的作用:消除静差,提高控制精度,I越大越滞后,过大会使系统振荡。 ...

fangchenglia的博客 1万+

PAT A1114

难度不大,就是过于繁琐 #include<iostream> #include<set> #include<vector> #include<algorithm> using namespace std; const int maxn = 10000; int n, father[maxn]; struct node{ double mest, area; }Node[maxn]; struct family{ int id, m; double .

学习笔记,不喜勿喷! 134

Windows 24H2升级后eNSP AR_40报错40?VirtualBox虚拟化修复指南

虚拟化技术通过Hypervisor在操作系统与硬件间建立抽象层,使虚拟机能够共享物理资源。其核心原理依赖CPU的VT-x/AMD-V指令集,而Windows 24H2对内核隔离与驱动签名的强化会直接占用或拦截这些虚拟化资源。在工程实践中,VirtualBox作为Type-2型Hypervisor,常因内存完整性开启或版本过旧导致虚拟网卡创建失败,进而引发设备启动中断。典型场景包括网络仿真实验、多系统测试环境搭建等。当eNSP的AR_40路由器依赖VirtualBox引擎时,24H2的安全策略变更便会触发错误

weixin_34375251的博客 216

pat a 1114

#include <iostream> #include <algorithm> #include <cmath> #include <cstring> #include <unordered_set> using namespace std; const int maxv=10010; int father[maxv]; bool v...

blxl313的博客 170

【Zemax光学设计实训一】---单透镜光学设计

建立一个焦距为100mm、入瞳直径为25mm的单透镜系统,该透镜中心厚度为4mm,其两个面的曲率半径分别为100mm、-100mm,全视场2w=10°。该系统在可见光下工作,采用BK7玻璃,光阑设置在人射光线遇到的透镜的第一个光学表面;并对其展开优化。

yh的博客 3618

反激开关电源设计全解析:从CCM/DCM原理到PCB布局实战

开关电源作为现代电子设备的能量转换核心,其核心原理是通过高频开关动作实现高效的电能变换。反激拓扑因其结构简单、成本低廉且易于实现电气隔离,成为小功率离线式电源的主流选择。其技术价值在于通过变压器耦合实现能量存储与传递,解决了安全隔离与多路输出等关键需求,广泛应用于充电器、适配器及家电供电等场景。本文聚焦反激电路,深入剖析其CCM与DCM两种工作模式的原理差异及选型考量,并结合伏秒平衡定律与RCD钳位等热词,详解从变压器计算到MOSFET选型的完整工程设计流程。

weixin_31951365的博客 343

pat A1114

网上找了一篇博客,链接给出https://blog.youkuaiyun.com/jolivan/article/details/59481949 但它存在一个问题:拥有共同孩子的两个人没有归到同一个家庭 自己动手修改后: //pat A1114 Family Property(25 分) #include &lt;cstdio&gt; #include &lt;algorithm&gt; #incl...

qq_38705851的博客 418

SCI、中科院1区算法应用:(BWO-CNN-BiGRU-Attention)白鲸优化深度学习-融合注意力机制预测程序代码!包含特征可视化,数据Excel导入,直接运行!

BWO 白鲸优化算法,于2022年发表在SCI、中科院1区期刊《Knowledge-Based Systems》上。我们利用该高创新算法对我们的CNN-BiGRU-Attention时序和空间特征结合-融合注意力机制的回归预测程序代码中的超参数进行优化。

weixin_48747334的博客 3263

PAT——1114 全素日

以上图片来自新浪微博,展示了一个非常酷的“全素日”:2019年5月23日。即不仅20190523本身是个素数,它的任何以末尾数字3结尾的子串都是素数。本题就请你写个程序判断一个给定日期是否是“全素日”。

Jamaple的博客 760

vscode中运行gcc -v命令失败了,提示:gcc不是内部或外部命令...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 976

c#视觉应用开发中如何使用Emgu CV在C#中进行图像处理?

Emgu CV 是 OpenCV 的 .NET 包装器,可以让开发者在 .NET 语言(如 C#)中使用 OpenCV 的功能进行图像处理。在进行图像处理时,Emgu CV 提供了丰富的 API 可以使用。PictureBoxImageBox下面是一个详细的示例,演示如何使用 Emgu CV 在 C# 中进行基本的图像处理,包括加载图像、转换为灰度图像、进行边缘检测,然后显示结果。byte在这个示例中,我们使用了三个PictureBox控件来显示原始图像、灰度图像和边缘检测后的图像。

zhangzhechun的专栏 670

第十三天PAT-A1114 Family Property并查集详细注解

A1114 Descripiton: 家族产权,给出N个人的家族关系即其所拥有的房产数和总面积,求这一系列人属于几个家族,并求其家族人均房产数和人均面积。 思路: 由于输入当前人的时候,其孩子的房产数和面积还没输入,所以第一遍输入没法计算房产总数和面积总数,于是我在第一遍输入的时候直接不做集合求并了,而是将所有与当前人为一家人(包括父母节点)的下标存储在结构体vector<int>child中,当所有人的房产数和总面积都输入完毕后,再从头到尾遍历每个人、取出要合并为一家人的下标进行合并; id

giggle66的博客 243

Windows 11 安装 uv:手动下载、配置国内源

本教程详细介绍了在 Windows 11 系统下安装并配置 Python 包管理器 uv 的完整流程,包括配置环境变量 PATH、设置清华 PyPI 镜像源,以及创建收据文件以支持未来更新。适用于因网络限制无法通过官方脚本自动安装的用户,操作步骤清晰,配有图文指引,帮助读者高效完成本地部署。

寒水馨 · 轻量级技术文档 · hanshuixin.org 7610

PAT甲级题解A1114 Family Property (25分)

PAT甲级题解 A1114 Family Property (25分) #include<iostream> #include<vector> #include<map> #include<algorithm> #include<cmath> using namespace std; const int eps = 1e-7;//double类型比较,这题貌似不用。 const int MAXN = 10010; int fa[MAXN], set

cold_lemon的博客 237

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

PAT_A1114#Family Property

Source: PAT A1114Family Property(25分) Description: This time, you are supposed to help us collect the data for family-owned property. Given each person's family members, and the estate(房产)...

weixin_34146986的博客 205

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【PAT】A1114 Family Property【并查集】

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 f...

elegant coder 731

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PAT A1114. Family Property

1114. Family Property (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue This time, you are supposed to help us col

u014226072的专栏 273

【并查集】PAT A1114 Family Property

文章目录题目描述知识点实现码前思考代码实现码后反思 题目描述 知识点 并(Union)查(Find)集(Set)(刚好就是并查集的三个核心思想) 实现 码前思考 看到这种“家族”,发现它是类似于集合的概念的,那么肯定要想到使用并查集。 并查集使用就两个函数 findFather 和 Union ,其中 findFather 要注意 路径压缩 即可! 我的思想是每次读入一行数据就更新一个家族...

yc_cy1999的博客 220

PAT A1114 Family Property

PAT A1114 Family Property 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...

qq_42347617的博客 178

1114. Family Property (25)[并查集]

1. 原题: https://www.patest.cn/contests/pat-a-practise/1114 2. 思路: 题意: 找出同一个有关系的家庭里的人数,房产套数及总面积。 思路: 并查集或者dfs算法。 集合问题,并查集优先。 我是先把结点进行合并, 合并好后按照根结点值升序(因为s[i].parent是负值,绝对值是该集合的人数),同时累计该集合的套数及

坚不萌 343

PAT A1114题目记录。以及出错的地方

我在初始化的地方错了,后面找了好久才找出来。呜呜呜 #include <iostream> #include <algorithm> #include <cstdio> #include <stdio.h> #include <math.h> #include <queue> using namespace std; int ...

weixin_44980441的博客 638

1114. Family Property (25)(PAT 并查集)

题目地址https://www.patest.cn/contests/pat-a-practise/1114ac注意 主要是并查集,不能漏掉 int fa[N];int find(int x) { if(x == fa[x]) return x; return fa[x] = find(fa[x]); }void merg(int x, int y) { int xx = fin

master-dragon的专栏 971

PAT | A1114 Family Property

并查集 #include <iostream> #include <unordered_map> #include <vector> #include <algorithm> using namespace std; struct Family{ int numOfMembers; int numOfHouses; int totalAre...

yehonglin29的博客 222

pat 1114. Family Property (25)

https://www.patest.cn/contests/pat-a-practise/1114#include #include #include #include #include #include #include #include #include using namespace std; typedef struct family { int minId; in

guojiaqi007的专栏 344

[PAT] A1114 Family Property

并查集 题目大意 给出每个人名下的房产和家庭关系,求出每个家庭的总人数即人均房产数和房产面积。第一行输出家庭个数(所有有亲属关系的人都属于同一个家庭)。随后按下列格式输出每个家庭的信息:家庭成员的最小编号 家庭人口数 人均房产套数 人均房产面积。其中人均值要求保留小数点后3位。家庭信息首先按人均面积降序输出;若有并列,则按成员编号的升序输出。 思路 用并查集。分别用两个结构体存储,一个用...

yue的博客 189
上一篇: PAT a1115
下一篇: PAT a1113
CSlerner
博客等级 码龄9年 153粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值