关注
第五题代码通过率总是33.3%,大家看看哪里错了,网络主播红人那道题 #include <iostream> #include <vector> #include <algorithm> #include<sstream> #include<string> using namespace std; typedef vector<pair<int, int> > RangeList; class UnionSet { public: UnionSet(int n ) { _set=new int[n]; for(int i=0;i<n+1;i++){ _set[i]=-1; } _n = n; } int GetRoot(int p) { while (_set[p] >= 0) //最终的根应该小于0 { p = _set[p]; } return p; } void UnionFriends(int p1, int p2) { //获取p1和p2最终属于哪个朋友圈 int root1 = GetRoot(p1); int root2 = GetRoot(p2); //将本该属于同一个朋友圈的两个朋友圈合并 if (root1 != root2) { _set[root1] = _set[root1] + _set[root2]; _set[root2] = root1; } } int friends(int n, int m, RangeList& r) { int count = 0; //朋友圈的个数 //合并朋友圈 for (int i = 0; i < m; i++) { UnionFriends(r[i].first, r[i].second); } //计算朋友圈个数 for (int i = 1; i < n + 1; i++) //跳过0号下标,没有第0个人 { if (_set[i] < 0) count++; } return count; } private: int *_set; int _n; }; int main() { RangeList intervals; int n, duisum, start, end; cin>>n>>duisum; for (int i = 0; i < duisum; ++i) { cin >> start >> end; intervals.push_back(make_pair(start, end)); } int m=intervals.size(); UnionSet us(n); int ret = us.friends(n, m, intervals); cout <<ret << endl; }
查看原帖
点赞 4
相关推荐
11-10 22:06
上海震旦职业学院 前端工程师 点赞 评论 收藏
分享
牛客热帖
正在热议
# 晒一晒我的offer #
9704170次浏览 104819人参与
# 机械只有读研才有出路吗? #
7886次浏览 103人参与
# 北方华创开奖 #
21014次浏览 244人参与
# 地方国企笔面经互助 #
1895次浏览 6人参与
# 滴滴求职进展汇总 #
78748次浏览 688人参与
# 考研失败就一定是坏事吗? #
36251次浏览 355人参与
# 机械人,签完三方你在忙什么? #
22955次浏览 119人参与
# 总结:哪家公司面试体验感最差 #
23429次浏览 115人参与
# 机械应届生薪资要多少才合适? #
11748次浏览 55人参与
# 学历or实习经历,哪个更重要 #
39037次浏览 280人参与
# 选完offer后,你后悔学本专业吗 #
6541次浏览 43人参与
# 查收我的offer竞争力报告 #
13284次浏览 191人参与
# 机械人怎么评价今年的比亚迪 #
40862次浏览 141人参与
# 应届生被毁约被毁意向了怎么办 #
24038次浏览 230人参与
# 00后45度躺现状 #
33456次浏览 294人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
35285次浏览 392人参与
# 秋招OC许愿 #
223991次浏览 1853人参与
# 如果能重来,就业or读研你选哪个? #
45249次浏览 333人参与
# 大疆求职进展汇总 #
402615次浏览 2869人参与
# 实习,投递多份简历没人回复怎么办 #
2381430次浏览 34165人参与
# 双非能在秋招上岸吗? #
98902次浏览 768人参与