博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ 20 吝啬的国度
阅读量:5261 次
发布时间:2019-06-14

本文共 1248 字,大约阅读时间需要 4 分钟。

吝啬的国度

时间限制:
1000 ms  |  内存限制:65535 KB
难度:
3
 
描述
在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。
 
输入
第一行输入一个整数M表示测试数据共有M(1<=M<=5)组
每组测试数据的第一行输入一个正整数N(1<=N<=100000)和一个正整数S(1<=S<=100000),N表示城市的总个数,S表示参观者所在城市的编号
随后的N-1行,每行有两个正整数a,b(1<=a,b<=N),表示第a号城市和第b号城市之间有一条路连通。
输出
每组测试数据输N个正整数,其中,第i个数表示从S走到i号城市,必须要经过的上一个城市的编号。(其中i=S时,请输出-1)
样例输入
110 11 91 88 1010 38 61 210 49 53 7
样例输出
-1 1 10 10 9 8 3 1 1 8
/*WA*/import java.util.Scanner;public class 吝啬的国度{    static class Edge{ //邻接表        int v;        int next;        //int weight; 这里不需要    }    static int[] first;// first[]头结点数组    static int tot;    static int n; //节点数,边数    static Edge[] edge; //边        static int[] pre;    public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int tcase = sc.nextInt();         while(tcase-->0){             n = sc.nextInt();             int S = sc.nextInt();             tot=0;             edge = new Edge[2*n+1];             first = new int [2*n+1];             for(int i=1;i<=n;i++){                    first[i] = -1;            }             pre = new int[n+1];             pre[S]=-1;             for(int i=0;i

 

 

转载于:https://www.cnblogs.com/liyinggang/p/5170906.html

你可能感兴趣的文章
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
Redmine
查看>>
帧的最小长度 CSMA/CD
查看>>
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
poj 1331 Multiply
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>