您当前的位置: 首页 > 

MangataTS

暂无认证

  • 0浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

MangataTS 发布时间:2022-03-26 21:37:26 ,浏览量:0

题目链接

https://pintia.cn/problem-sets/994805046380707840/problems/994805068539215872

视频讲解

https://www.bilibili.com/video/BV1nT4y1v7n3/

思路

我们能获取 N 条信息,对于每一条消息我们能知道当前这个人的编号id 以及父亲的编号 faa 母亲的编号 ma 并且知道 k 个儿子的编号,然后我们又知道这个人的房子的总套数以及房子的总面积 ,这其实是一个很经典的数据结构-》 并查集,我们维护的每一个集合就是一个家族,我们讲当前读入的这个人的父亲和母亲合并在一个集合里面,再将他和他的儿子合并在一起,然后记录一下这个人的房子套数以及房子的总面积就好了,最后我们从 0 0 0往 9999 9999 9999 遍历,将这些访问过的编号的值加在祖先元素上面,这里我们用的一个map存储每个家族的数据,最后我们将其放入数组或者容器中排序即可,具体可以参见代码。

代码
#include
using namespace std;
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair
#define INF 0x3f3f3f3f

const int N = 1e4+10;
int n,fa[N];
bool vis[N];

struct Node{
	double tao,area;	
};

struct ANS{
	int id,people;
	double tao,area;
};

bool cmp(ANS a,ANS b) {
	if(fabs(a.area - b.area)             
关注
打赏
1665836431
查看更多评论
0.0568s