1094. The Largest Generation (25)
2015-11-22 15:35
351 查看
1.这道题目主要是求家族树中,哪一层的成员数最多,输出成员数和该层层数
2.主要考察了层次遍历和数据结构的设计
AC代码如下:
2.主要考察了层次遍历和数据结构的设计
AC代码如下:
//#include<string> //#include <iomanip> #include<vector> #include <algorithm> //#include<stack> #include<set> #include<queue> #include<map> //#include<unordered_set> #include<unordered_map> //#include <sstream> //#include "func.h" //#include <list> #include<stdio.h> #include<iostream> #include<string> #include<memory.h> #include<limits.h> using namespace std; struct Node{ vector<int> list; Node() :list(0){}; }; int main(void) { int totalNum, recordNum; cin >> totalNum >> recordNum; vector<Node> tree(totalNum+1); for (int i = 0; i < recordNum; i++) { int id, n; cin >> id >> n; for (int j = 0; j < n; j++) { int tmp; cin >> tmp; tree[id].list.push_back(tmp); } } queue<int> q; q.push(1); int count1 = 1; int count2 = 0; int maxFamilyMember = 1, maxFamilyLevel = 1; int level = 1; while (!q.empty()) { for (int i = 0; i < count1; i++) { int root = q.front(); q.pop(); for (int j = 0; j < tree[root].list.size(); j++) { q.push(tree[root].list[j]); } count2 += tree[root].list.size(); } level++; if (count2 > maxFamilyMember) { maxFamilyMember = count2; maxFamilyLevel = level; } count1 = count2; count2 = 0; } cout << maxFamilyMember << " " << maxFamilyLevel << endl; return 0; }
相关文章推荐
- 51单片机中断详解(上)
- 20151113chattr ,lsattr 使用,设置和查看特殊权限
- 微信支付
- 1094. The Largest Generation (25)
- 教你如何在ubuntu15.04安装 RVM
- HDU 1209 Clock(模拟)
- 查询优化(一:Bookmark Lookup)
- php的延迟静态绑定
- 在centos7搭建上svn,并用svn和http访问
- 再谈沟通
- 在jsp中连接数据库的用法(增删改查)
- 工厂设计模式
- DFS & BFS
- Hibernate基础
- 第八章 异常控制流
- 源代码管理和git 使用
- YII 路径总结
- javascript冒泡排序
- ios 方面常见的一些面试问题
- 在C++中使用golang的协程