NYOJ 20 吝啬的国度(深搜)
描述
- 输入
-
第一行输入一个整数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 吝啬的国度(深搜)相关推荐
- NYOJ 20 吝啬的国度(深搜)
描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设 ...
- NYOJ 20 吝啬的国度 广度优先搜索
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...
- NYOJ 20 吝啬的国度 (搜索)
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...
- NYOJ 20 吝啬的国度 续
还是<吝啬的国度>,研读了别人的较为高效的代码,无论是时间开销,还是空间开销都要小很多啊,截图为证: 我的所有运行: 52ms的是我参照别人的写的代码,时间开销比我的小将近一半,内存开销仅 ...
- NYOJ 20 吝啬的国度
吝啬的国度 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市 ...
- 《图论》— NYOJ 20 吝啬的国度
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...
- 题目20: 吝啬的国度
吝啬的国度 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市 ...
- nyoj-20-吝啬的国度(深搜)
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描写叙述 在一个吝啬的国度里有N个城市.这N个城市间仅仅有N-1条路把这个N个城市连接起来.如今,Tom在第S号城市 ...
- NOJ 20 吝啬的国度
开始做深搜的题,这是一种比较常见的递归,就是直接看去的点是从那来的,标记一下避免重复搜. 深搜的注意个人认为,1,要在一定范围内一般是在递归在1e4的范围内: 2,就是要注意标记,不然也可能导致超时的 ...
最新文章
- 重磅:ATT的《5G移动边缘计算白皮书》!
- 利用WebClient类向服务器上载文件(转孟子的)
- itk下FFTW的FFT和IFFT
- python装饰器函数-Python函数装饰器指南
- TypeScript方法的定义
- Python用泰勒公式模拟函数
- HDU4666 Hyperspace(数学推理+数据结构)
- 天勤数据结构:前缀、中缀、后缀表达式的转换与计算
- vst3插件_2B Played Music发布用于劲爆舞曲风格的极端失真和剪辑插件2B Clipped XT
- .NET框架程序设计--Globally Deployment Assembly全局部署程序集
- 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
- kotlin 第一个程序_Kotlin程序添加两个矩阵
- OpenMMLab的新篇章
- 架构之路 参考MySpace
- python二元函数拟合_Python拟合二元一次函数
- 永磁同步电机的直接转矩控制(二)一一一传统DTC仿真结果分析
- 2019风向趋势分析报告——覆盖5G、人工智能、金融科技等领域
- EasyUI Menu 菜单和按钮
- “0基础考生考前三小时突破《申论》80分气哭学霸”——单一题(问题+影响)
- Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单
热门文章
- 图书管理系统的数据库设计
- vue子元素点击事件与父元素点击事件冲突 子元素点击事件不触发
- 一个点的经度和纬度,以这个点为圆心,1000米为半径,最大的经度和纬度,最小的经度和纬度...
- 2023轻薄投影仪首选:极米Z6X Pro入手超值!
- 【故障诊断】基于 KPCA 进行降维、故障检测和故障诊断研究(Matlab代码实现)
- DHT11温湿度传感器(基于树莓派)
- windows蓝牙编程——1 扫描周边蓝牙并获取蓝牙信息
- Win10/Win7 打印机 [有线局域网共享]
- 【单片机应用】项目一 发光二极管LED控制
- [cocos2d-iphone]ios6截图问题