日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++学习之路 | PTA(天梯赛)—— L2-007 家庭房产 (25分)(带注释)(并查集)(精简)

發(fā)布時(shí)間:2024/7/23 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习之路 | PTA(天梯赛)—— L2-007 家庭房产 (25分)(带注释)(并查集)(精简) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

L2-007 家庭房產(chǎn) (25分)
給定每個(gè)人的家庭成員和其自己名下的房產(chǎn),請(qǐng)你統(tǒng)計(jì)出每個(gè)家庭的人口數(shù)、人均房產(chǎn)面積及房產(chǎn)套數(shù)。
輸入格式:

輸入第一行給出一個(gè)正整數(shù)N(≤1000),隨后N行,每行按下列格式給出一個(gè)人的房產(chǎn):
編號(hào) 父 母 k 孩子1 … 孩子k 房產(chǎn)套數(shù) 總面積
其中編號(hào)是每個(gè)人獨(dú)有的一個(gè)4位數(shù)的編號(hào);父和母分別是該編號(hào)對(duì)應(yīng)的這個(gè)人的父母的編號(hào)(如果已經(jīng)過世,則顯示-1);k(0≤k≤5)是該人的子女的個(gè)數(shù);孩子i是其子女的編號(hào)。
輸出格式:

首先在第一行輸出家庭個(gè)數(shù)(所有有親屬關(guān)系的人都屬于同一個(gè)家庭)。隨后按下列格式輸出每個(gè)家庭的信息:
家庭成員的最小編號(hào) 家庭人口數(shù) 人均房產(chǎn)套數(shù) 人均房產(chǎn)面積
其中人均值要求保留小數(shù)點(diǎn)后3位。家庭信息首先按人均面積降序輸出,若有并列,則按成員編號(hào)的升序輸出。
輸入樣例:

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 -1 3 1236 1235 1234 1 100
1235 5678 9012 0 1 50
2222 1236 2468 2 6661 6662 1 300
2333 -1 3721 3 6661 6662 6663 1 100
輸出樣例:

3
8888 1 1.000 1000.000
0001 15 0.600 100.000
5551 4 0.750 100.000

這題一開始沒什么思路,感覺計(jì)算量很大,后來參考了別人的代碼,恍然大悟,剛開始看的時(shí)候可能有點(diǎn)蒙。

#include<iostream> #include<set> #include<vector> #include<map> #include<algorithm> using namespace std; const int maxn = 10000; int pre[maxn]; struct node {//存儲(chǔ)開始輸入的人的基本信息int id, house;double area; }; struct family {//輸出的家庭結(jié)構(gòu)體int id, number;double house, area; }; bool cmp(family a, family b)//自定義比較函數(shù) {if (a.area != b.area)return a.area > b.area;else return a.id < b.id; } int find(int x)//并查集模板,查找 {while (x != pre[x]) x = pre[x];return x; } void merge(int x, int y)//并查集模板,合并 {int a = find(x);int b = find(y);if (a != b) pre[a] = b; } int main() {int n, x;cin >> n;set<int>s;//存儲(chǔ)每人的編號(hào),默認(rèn)升序map<int, node>nodes;//記錄人的房產(chǎn)信息for (int i = 0; i < maxn; i++)pre[i] = i;//初始化pre數(shù)組for (int i = 0; i < n; i++){int id, p1, p2, k, house, id1;//分別記錄編號(hào) 父 母 k 孩子1 ... 孩子k 房產(chǎn)套數(shù)double area;// 總面積cin >> id >> p1 >> p2 >> k;s.insert(id);//插入idif (p1 != -1)//有爸爸{s.insert(p1);merge(id, p1);}if (p2 != -1)//有媽媽{s.insert(p2);merge(id, p2);}for (int j = 0; j < k; j++)//隨后的家庭成員{cin >> id1;s.insert(id1);merge(id1, id);}cin >> house >> area;nodes[id] = node{ id,house,area };//記錄該人的家庭信息}set<int>s1;//記錄家庭編號(hào)(也可以理解記錄著每個(gè)家庭的老大)map<int, vector<int>>m;//記錄家庭編號(hào)()和成員編號(hào)for (auto it = s.begin(); it != s.end(); it++){int fa = find(*it);m[fa].push_back(*it);s1.insert(fa);}cout << s1.size() << endl;//輸出家庭的個(gè)數(shù)vector<family>v1;for (auto it = s1.begin(); it != s1.end(); it++){int fa = *it;double house = 0, area = 0;for (auto tmp = 0; tmp < m[fa].size(); tmp++)//將每個(gè)家庭的成員及其房產(chǎn)計(jì)算匯總,放入family結(jié)構(gòu)體中{house += nodes[m[fa][tmp]].house;area += nodes[m[fa][tmp]].area;}v1.push_back(family{ m[fa][0],int(m[fa].size()),house * 1.0 / (int)m[fa].size(),area * 1.0 / (int)m[fa].size() });}sort(v1.begin(), v1.end(), cmp);//進(jìn)行排序for (int i = 0; i < v1.size(); i++) {printf("%04d %d %.3lf %.3lf", v1[i].id, v1[i].number, v1[i].house, v1[i].area);if (i < v1.size() - 1) puts("");} }

總結(jié)

以上是生活随笔為你收集整理的C++学习之路 | PTA(天梯赛)—— L2-007 家庭房产 (25分)(带注释)(并查集)(精简)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 二区在线视频 | 久久美女性网 | 日本精品在线 | 久久亚洲影院 | 糖心vlog精品一区二区 | 久久一二三区 | 久久国产精品电影 | 18精品爽国产白嫩精品 | 免费黄色大片网站 | 97久久久久久久 | 黄色网页入口 | 久久一区欧美 | 伊人在线 | 黄色片网站大全 | 丰满人妻一区二区 | 免费毛片在线播放免费 | 亚州色图欧美色图| 在线免费观看国产 | 姑娘第5集高清在线观看 | av不卡在线免费观看 | 成人精品一区二区三区电影 | 91久久精品国产91久久性色tv | 欧美一区三区三区高中清蜜桃 | 精品国产91 | 国产精品视频免费在线观看 | 日韩a∨| av片在线播放 | 中文字幕不卡一区 | 色综合久久天天综合网 | 亚洲久草视频 | 老色批网站 | 欧美人体一区二区三区 | 人人妻人人澡人人爽精品日本 | 天天综合入口 | 日韩电影一区二区在线观看 | 最新日韩视频 | 理论片午午伦夜理片影院99 | 欧美性猛交xxxx乱 | chinesepron hd videos国产91 | 国产精品久久久久久久久动漫 | 爆操欧美 | 日韩欧美手机在线 | 在线免费观看视频你懂的 | 欧洲精品二区 | 欧美日韩激情 | 久久99精品久久只有精品 | 一区精品二区国产 | 国产淫语对白 | 国产又黄又猛又爽 | 日韩欧洲亚洲AV无码精品 | 国产女人18毛片水真多1 | 阿v天堂网| 日日夜夜免费视频 | 国产99久久九九精品无码免费 | 欧美日本亚洲 | 国产盗摄精品一区二区酒店 | 久久这里只有精品9 | 日韩六十路| 日日爱网站 | 欧美1区2区 | 国产123区在线观看 91国产一区二区 | 国产3p精品一区 | 免费不卡的av | av在线资源站 | 日本免费在线视频 | 亚洲男女| 国产麻豆乱码精品一区二区三区 | 大色综合 | 色网在线视频 | 黑人操中国女人视频 | av成人精品 | 国产精品无码毛片 | 日韩高清二区 | 国产精品无套 | 国产精品123 | 巨大胸大乳奶电影 | 丰满少妇在线观看资源站 | 在线视频观看一区 | 最新av免费观看 | 国产中文一区 | 69堂视频| 欧美视频一二区 | 欧美一区二区免费在线观看 | 亚洲乱色熟女一区二区 | 精品久久9999| 国产精品野外户外 | 国产又粗又猛又黄又爽 | 中文字幕人妻丝袜乱一区三区 | 国产日产欧美一区二区三区 | 成 年人 黄 色 片 | 在线免费观看视频你懂的 | 日韩少妇av | 日韩avv| 小俊大肉大捧一进一出好爽 | 日本福利社| 一线毛片 | 欧美精产国品一二三 | aa视频网站 | 国产精品成人3p一区二区三区 |