吝啬的国度
来源:互联网 发布:js中怎么使用map 编辑:程序博客网 时间:2024/06/07 14:58
题目:在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。
思路:根据题目来的例子画出的是树,但是为了保险起见还是用图的方式来存储。然后是求S点与T点之间的路径,采用深度优先搜索。其中的问题就是一开始全用linkedlist来创建,提交上去(南阳oj)就发现报出编译错误,然后换成List Arraylist又能通过了,这里不是很明白。
import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Country { static List<Integer>[] list;//用来存储图的顶点 static boolean[] vist;//用来标志顶点是否被访问过 static int[] arr;//用来存储上一个城市的编号 public static void main(String[] args) { Scanner in=new Scanner(System.in); int m=in.nextInt(); while (m>0) { int n=in.nextInt(); int s=in.nextInt()-1; arr=new int[n]; arr[s]=-1; vist=new boolean[n]; //利用邻接表创建图 list=new ArrayList[n]; for (int i = 0; i < list.length; i++) { list[i]=new ArrayList<>(); } for (int i = 0; i < n-1; i++) { int a=in.nextInt()-1; int b=in.nextInt()-1; list[a].add(b); list[b].add(a); } //深度优先搜索 DFS(s); //输出 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println(); m--; } // TODO Auto-generated method stub } //深度优先搜索 public static void DFS(int s){ vist[s]=true; for (Integer i:list[s]) { if (vist[i]) { continue; } arr[i]=s+1; DFS(i); } }}
阅读全文
0 0
- nyoj_20 吝啬的国度
- 吝啬的国度
- noj 吝啬的国度
- 吝啬的国度
- NYOJ 吝啬的国度
- NYOJ 吝啬的国度
- 吝啬的国度
- nyoj20(吝啬的国度)
- 吝啬的国度
- 吝啬的国度
- 【搜索】吝啬的国度
- 吝啬的国度
- NY20 吝啬的国度
- NYOJ20-吝啬的国度
- 吝啬的国度
- 吝啬的国度
- 吝啬的国度
- 吝啬的国度 nyoj
- php中的魔术方法
- 进来先放松下嘛,我来开源一首歌曲。
- php 正则表达式
- CNN及其在lenet-5、Alexnet上的应用
- SDUT-1122 判断素数
- 吝啬的国度
- js中的作用域
- 【iOS开发】内存管理002之UIViewController无法正常释放的常见问题
- 听报告:大数据分析:社交和认知应用中的云计算
- Python通用装饰器
- BP神经网络
- ajax图片上传
- jmeter断言加密的响应信息(转)
- Spring MVC 属性文件读取注入到静态字段