zoukankan      html  css  js  c++  java
  • A1094 The Largest Generation (25分)

    一、技术总结

    1. 首先题意要理解清楚,是查找最多人数的一代。
    2. 遍历树可以使用DFS和BFS,重点是统计每一层的人数。首先是定义一个统计每一层人数的hashTable的数组。
    3. BFS and DFS
    //BFS
    void BFS(int root){
    	queue<int> q;
    	q.push(root);
    	Node[root].layer = 1;
    	while(!q.empty()){
    		int now = q.front();
    		hashTable[Node[now].layer]++;
    		q.pop();
    		for(int i = 0; i < Node[now].child.size(); i++){
    			int child = Node[now].child[i];
    			Node[child].layer = Node[now].layer + 1;
    			q.push(Node[now].child[i]);
    		}
    	}
    } 
    //DFS
    void DFS(int index, int level){
    	hashTable[level]++;
    	for(int i = 0; i < Node[index].child.size(); i++){
    		DFS(Node[index].child[i], level+1);
    	}
    }
    

    二、参考代码

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 110;
    struct node{
    	int layer;
    	vector<int> child;
    }Node[maxn];
    int Layer, sum;//用于记录这一代中的最多人数,layer表示层数。 
    int hashTable[maxn] = {0};
    void BFS(int root){
    	queue<int> q;
    	q.push(root);
    	Node[root].layer = 1;
    	while(!q.empty()){
    		int now = q.front();
    		hashTable[Node[now].layer]++;
    		q.pop();
    		for(int i = 0; i < Node[now].child.size(); i++){
    			int child = Node[now].child[i];
    			Node[child].layer = Node[now].layer + 1;
    			q.push(Node[now].child[i]);
    		}
    	}
    } 
    int main(){
    	int n, num;//n是总人数,num是记录有孩子的结点数
    	scanf("%d%d", &n, &num);
    	int id;//记录有孩子的结点编号 
    	for(int i = 0; i < num; i++){
    		int num, id2;
    		scanf("%d%d", &id, &num); 
    		for(int j = 0; j < num; j++){
    			scanf("%d", &id2);
    			Node[id].child.push_back(id2);
    		}
    	} 
    	BFS(1);
    	int maxValue = -1, maxLevel = 0;
    	for(int i = 1; i < maxn; i++){
    		if(hashTable[i] > maxValue){
    			maxValue = hashTable[i];
    			maxLevel = i;
    		}
    	}
    	printf("%d %d", maxValue, maxLevel);
    	return 0;
    }
    
    作者:睿晞
    身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
    劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
    曾有一个业界大牛说过这样一段话,送给大家:   “华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    记录-tomcat启动项目配置
    记录 -- js浏览器窗口关闭调用ajax
    远程桌面时出现身份验证错误,要求的函数不受支持
    记录-马斯洛需求层次理论模型
    记录-powerDesigner 导入sql文件注释问题
    记录-Java md5加密
    记录--js 剪贴板操作 (转载)
    如何判定一台计算机的唯一性
    GO_OOP简单摘要
    后台执行命令
  • 原文地址:https://www.cnblogs.com/tsruixi/p/12323346.html
Copyright © 2011-2022 走看看