題目:給乙個數n,之後說明n個人財產情況,格式為 人員編號 父編號 母編號 孩子個數 數個孩子編號--- 房產數量 房產面積
雖然讓求出有多少個家族及家族平均財產情況,輸出為
家族編號最小成員 家族人數 平均房山數(三位小數) 平均面積(三位小時)
之前顯是在輸入上卡了很久double和float的輸入均為%f不是%lf!!
輸出也要注意
printf("%04d %d %.3lf %.3lf\n", v2[i].n, v2[i].num, v2[i].s, v2[i].a);
還有初始化的問題
struct node
}v[10005];
思路問題,乍一看知道是並查集,但又比較麻煩,顯示把家族合併,然後把財產先歸到個人,最後遍歷,把財產加給那個最小的成員(也就是祖先),最後計算平均排序
int zu[10005];
int pan[10005];
struct node
}v[10005]; //這樣建立可以建立一系列已經被初始化的node
int qiuzu(int a)
void marge(int a, int b)
bool cmp(node a, node b)
int main(void)
if (c != -1)
int n2;
scanf("%d", &n2);
for (j = 0;j < n2;j++) //接受孩子並合併孩子
scanf("%f%f", &v[a].s, &v[a].a); //把所有房產算到本人頭上,這裡卡了一下,之前不小心寫成%lf就亂碼
}sets;
for (i = 9999;i >= 0;i--) }}
set::iterator it;
vectorv2;
for (it = s.begin();it != s.end();it++) //遍歷家族,並求出人均財產
sort(v2.begin(), v2.end(), cmp);
printf("%d\n", v2.size());
for (i = 0;i < v2.size();i++)
return 0;
}
PTA 排座位 並查集
並查集 布置宴席最微妙的事情,就是給前來參宴的各位賓客安排座位。無論如何,總不能把兩個死對頭排到同一張宴會桌旁!這個艱鉅任務現在就交給你,對任何一對客人,請編寫程式告訴主人他們是否能被安排同席。輸入第一行給出3個正整數 n le 100 即前來參宴的賓客總人數,則這些人從1到 n編號 m為已知兩兩賓...
PTA朋友圈 並查集
某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據 我的朋友的朋友也是我的朋友 這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。輸入的第一行包含兩個正整數n...
並查集 排座位 PTA
輸出 no problem okok but.no way 題意 輸入一堆關係以後判斷兩個人能不能坐在一起,不同關係對應不同輸出 思路 用並查集可以在fa陣列中儲存乙個朋友圈裡的領頭人物。之後判斷時候只要看這兩個人fa陣列中存的領頭人物是不是同乙個人就ok了 include include incl...