解體思路:利用並查集將所有家庭成員連線到乙個祖宗,連線的時候優先選擇將編號大的連線到編號小的,讓編號小的當祖宗。
ac**:
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11 #include
12#define ll long long
13#define ull unsigned long long
14#define inf 0x3f3f3f3f
15#define inff 0x7fffffff
16using
namespace
std;
17const
int n = 10000 + 10;18
const
int m = 200000 + 10;19
const ll mod = 1e9 + 7;20
21struct
pep p[n];
2526
intfa[n], vis[n];
27int
ans[n];
2829
int finds(int
x) 33
34bool cmp(int a, int
b) 44}45
else
if (fa[a] == a) return
true;46
else
return
false;47
}4849int
main()
56for (int i = 1; i <= n; i++)
77else
if (t1 >t2) 83}
84if (fat != -1
) 94
else
if(t1 >t2)
100}
101if (mot != -1
) 111
else
if(t1 >t2)
117}
118int
pos_house, pos_area;
119 cin >> pos_house >>pos_area;
120int t =finds(x);
121 p[t].num +=pos_house;
122 p[t].area +=pos_area;
123}
124int p_sum = 0
;125
for (int i = 0; i <= 10005; i++)
132}
133/*
for (int i = 1; i <= 10000; i++)
137}
*/138
/*for (int i = 1; i <= 1000; i++)
*/141 sort(ans, ans + 10001
, cmp);
142 cout << p_sum << "\n"
;143
for (int i = 0; i < p_sum; i++)
149150
return0;
151 }
L2 007 家庭房產
給定每個人的家庭成員和其自己名下的房產,請你統計出每個家庭的人口數 人均房產面積及房產套數。輸入格式 輸入第一行給出乙個正整數n 1000 隨後n行,每行按下列格式給出乙個人的房產 編號 父 母 k 孩子1 孩子k 房產套數 總面積 其中 編號 是每個人獨有的乙個4位數的編號 父 和 母 分別是該編...
PTA L2 家庭房產 並查集
題目描述 給定每個人的家庭成員和其自己名下的房產,請你統計出每個家庭的人口數 人均房產面積及房產套數 ac include include include using namespace std const int n 1e5 55 int pre n vis n tig n struct node...
GPLT L2 007 家庭房產 (並查集)
給定每個人的家庭成員和其自己名下的房產,請你統計出每個家庭的人口數 人均房產面積及房產套數。輸入和輸出各構造乙個結構體,利用並查集歸併輸入,列舉編號進行輸出。include using namespace std const int m 11000 struct datadata m struct ...