并查集,是家庭成员就并,并且father是较小的,最后统一。
统计,房产套数和房产面积通过题目给的n行数据来统计,人数和家族人通过标记的所有出现过的人来统计。
#include<bits/stdc++.h>
using namespace std;
struct node{
int id;
int flag;
// fu,mu;
// int child[5];
int set;
int area;
}people[1010];
struct Ans{
int flag;
int id;int ren;
double set,area;
}ans[10000];
bool cmp(Ans a,Ans b){
if(a.area!=b.area) return a.area>b.area;
else return a.id<b.id;
}
int father[10000];
int have[10000];
int getFather(int x){
int a=x;
while(x!=father[x]) x=father[x];
while(a!=x){
int z=father[a];
father[a]=x;
a=z;
}
return x;
}
void unoin(int a,int b){
int fa=getFather(a);int fb=getFather(b);
if(fa>fb) father[fa]=fb;
else father[fb]=fa;
}
void init(){
for(int i=0;i<10000;i++) father[i]=i;
return;
}
int main(