PAT1005-The Largest Generation
来源:互联网 发布:用友t3数据库安装 编辑:程序博客网 时间:2024/06/17 12:15
题意:
家族组成树,求孩子最多的一层。
解答:
本题关键两个问题:
1、用什么数据结构储存数据
2、怎么把数据读取出来处理
定义了一个节点对象存放数据,在取出来的时候使用了队列,加入队列的是这一层所有的孩子,也就是说要先把队列的父类全部取出来,然后将下一代全部压入,没这么操作一次,深度加1,并且保存最大孩子数。
此处注意使用addAll(),可以方便不少。
还要注意节点对象的定义了使用了数组。
具体java代码:
import java.util.*;public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); int N=in.nextInt(); int M=in.nextInt(); Node[] list=new Node[N+1]; for(int i=0;i<N+1;i++){ list[i]=new Node(); } for(int i=0;i<M;i++){ int temp=in.nextInt(); int n=in.nextInt(); for(int j=0;j<n;j++){ list[temp].children.add(in.nextInt()); } } in.close(); Queue<Integer> q=new LinkedList(); int max=1; int maxLevel=1; int level=1; q.add(1); while(!q.isEmpty()){ int k=q.size(); for(int i=0;i<k;i++){ int node=q.poll(); q.addAll(list[node].children); } level++; int t=q.size(); if(t>max){ max=t; maxLevel=level; } } System.out.println(max+" "+maxLevel); } }class Node{ ArrayList<Integer> children=new ArrayList(); }
0 0
- PAT1005-The Largest Generation
- 1094.The Largest Generation
- 1094. The Largest Generation
- 1094. The Largest Generation
- pat1094 The Largest Generation
- 1094. The Largest Generation
- The Largest Generation (25)
- 1094 The Largest Generation
- 1094. The Largest Generation
- 1094. The Largest Generation
- 1094. The Largest Generation
- The Largest Generation (25)
- 1094. The Largest Generation
- 1094. The Largest Generation
- The Largest Generation
- PAT-The Largest Generation
- The Largest Generation (25)
- The Largest Generation(DFS)
- java程序设计基础_陈国君版第五版_第六章例题
- jsp基础语法
- EL表达式和OGNL表达式 区别小结
- HDU 杭电1002 A + B Problem II
- FZU 2196 Escape【BFS】
- PAT1005-The Largest Generation
- 五、中央处理器
- 回型取数
- 六、总线
- 秒杀系统
- 斐波那契数列
- Cling
- html中a标签中的onclick和href的使用
- PHP中抽象方法、抽象类和接口的用法