描述

在一个吝啬的国度里有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)
样例输入
1
10 1
1 9
1 8
8 10
10 3
8 6
1 2
10 4
9 5
3 7
样例输出
-1 1 10 10 9 8 3 1 1 8

因为给定的城市N的数目太大,建立数组需要用到#include<vector>,vector就是一个不定长数组,vector<int>a就是一个类似于int a[]的整数数组,只不过他的长度不确定,可以用a.size()读取他的长度。

而vector<int>a[max]就是一个二维数组,只是第一维的大小是固定的(不超过max),二维的大小就不固定了,这道题之所以用到vector就是利用了他的不定长,如果直接建立二维数组a[n][n],n太大了,这样的二维数组绝对超出内存。

(1)头文件#include<vector>.

(2)创建vector对象,vector<int> vec;

(3)尾部插入数字:vec.push_back(a);

(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

(5)向量大小:vec.size();

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
int f[100100];
vector<int>v[100005];
void dfs(int s)
{int i;for(i=0; i<v[s].size(); i++){if(f[v[s][i]])continue;f[v[s][i]]=s;dfs(v[s][i]);}
}
int main()
{int i,j,n,s,t,a,b;scanf("%d",&t);while(t--){memset(f,0,sizeof(f));memset(v,0,sizeof(v));scanf("%d%d",&n,&s);f[s]=-1;for(i=1; i<n; i++){scanf("%d%d",&a,&b);v[a].push_back(b);v[b].push_back(a);}dfs(s);for(i=1; i<=n; i++){printf("%d",f[i]);if(i==n)printf("\n");else printf(" ");}}return 0;
}

NYOJ 20 吝啬的国度(深搜)相关推荐

  1. NYOJ 20 吝啬的国度(深搜)

    描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设 ...

  2. NYOJ 20 吝啬的国度 广度优先搜索

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...

  3. NYOJ 20 吝啬的国度 (搜索)

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...

  4. NYOJ 20 吝啬的国度 续

    还是<吝啬的国度>,研读了别人的较为高效的代码,无论是时间开销,还是空间开销都要小很多啊,截图为证: 我的所有运行: 52ms的是我参照别人的写的代码,时间开销比我的小将近一半,内存开销仅 ...

  5. NYOJ 20 吝啬的国度

    吝啬的国度 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市 ...

  6. 《图论》— NYOJ 20 吝啬的国度

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...

  7. 题目20: 吝啬的国度

    吝啬的国度 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市 ...

  8. nyoj-20-吝啬的国度(深搜)

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 在一个吝啬的国度里有N个城市.这N个城市间仅仅有N-1条路把这个N个城市连接起来.如今,Tom在第S号城市 ...

  9. NOJ 20 吝啬的国度

    开始做深搜的题,这是一种比较常见的递归,就是直接看去的点是从那来的,标记一下避免重复搜. 深搜的注意个人认为,1,要在一定范围内一般是在递归在1e4的范围内: 2,就是要注意标记,不然也可能导致超时的 ...

最新文章

  1. 重磅:ATT的《5G移动边缘计算白皮书》!
  2. 利用WebClient类向服务器上载文件(转孟子的)
  3. itk下FFTW的FFT和IFFT
  4. python装饰器函数-Python函数装饰器指南
  5. TypeScript方法的定义
  6. Python用泰勒公式模拟函数
  7. HDU4666 Hyperspace(数学推理+数据结构)
  8. 天勤数据结构:前缀、中缀、后缀表达式的转换与计算
  9. vst3插件_2B Played Music发布用于劲爆舞曲风格的极端失真和剪辑插件2B Clipped XT
  10. .NET框架程序设计--Globally Deployment Assembly全局部署程序集
  11. 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
  12. kotlin 第一个程序_Kotlin程序添加两个矩阵
  13. OpenMMLab的新篇章
  14. 架构之路 参考MySpace
  15. python二元函数拟合_Python拟合二元一次函数
  16. 永磁同步电机的直接转矩控制(二)一一一传统DTC仿真结果分析
  17. 2019风向趋势分析报告——覆盖5G、人工智能、金融科技等领域
  18. EasyUI Menu 菜单和按钮
  19. “0基础考生考前三小时突破《申论》80分气哭学霸”——单一题(问题+影响)
  20. Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单

热门文章

  1. 图书管理系统的数据库设计
  2. vue子元素点击事件与父元素点击事件冲突 子元素点击事件不触发
  3. 一个点的经度和纬度,以这个点为圆心,1000米为半径,最大的经度和纬度,最小的经度和纬度...
  4. 2023轻薄投影仪首选:极米Z6X Pro入手超值!
  5. 【故障诊断】基于 KPCA 进行降维、故障检测和故障诊断研究(Matlab代码实现)
  6. DHT11温湿度传感器(基于树莓派)
  7. windows蓝牙编程——1 扫描周边蓝牙并获取蓝牙信息
  8. Win10/Win7 打印机 [有线局域网共享]
  9. 【单片机应用】项目一 发光二极管LED控制
  10. [cocos2d-iphone]ios6截图问题