吝啬的国度(dfs+vector)
吝啬的国度
- 描述
- 在一个吝啬的国度里有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 
 题解:vector建图;pre数组记录;
 代码:#include<stdio.h> 
 #include<string.h>
 #include<vector>
 using namespace std;
 const int MAXN=;
 vector<int>vec[MAXN];
 int pre[MAXN],s;
 #define mem(x) memset(x,0,sizeof(x))
 void dfs(int x){
 for(int i=;i<vec[x].size();i++){
 int b=vec[x][i];
 if(!pre[b]){
 pre[b]=x;
 dfs(b);
 }
 }
 }
 int main(){
 int T,N,x,y;
 scanf("%d",&T);
 while(T--){
 scanf("%d%d",&N,&s);
 mem(pre);
 for(int i=;i<=N;i++)vec[i].clear();
 for(int i=;i<N;i++){
 scanf("%d%d",&x,&y);
 vec[x].push_back(y);
 vec[y].push_back(x);
 }
 dfs(s);
 pre[s]=-;
 for(int i=;i<=N;i++){
 if(i!=)printf(" ");
 printf("%d",pre[i]);
 }
 puts("");
 }
 return ;
 }这种方法wa,但是不知道为什么: #include<stdio.h> 
 #include<string.h>
 #include<vector>
 using namespace std;
 const int MAXN=;
 vector<int>vec[MAXN];
 int pre[MAXN],s;
 #define mem(x) memset(x,0,sizeof(x))
 int print(int x){
 for(int i=;i<vec[x].size();i++){
 int b=vec[x][i];
 return b;
 }
 return -;
 }
 int main(){
 int T,N,x,y;
 scanf("%d",&T);
 while(T--){
 scanf("%d%d",&N,&s);
 for(int i=;i<=N;i++)vec[i].clear();
 for(int i=;i<N;i++){
 scanf("%d%d",&x,&y);
 vec[y].push_back(x);
 }
 for(int i=;i<=N;i++){
 if(i!=)printf(" ");
 printf("%d",print(i));
 }
 puts("");
 }
 return ;
 }
吝啬的国度(dfs+vector)的更多相关文章
- NYOJ 20.吝啬的国度-DFS+STL(vector保存上一节点)
		整理代码 吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第 ... 
- 【ACM】吝啬的国度 - DFS (图)
		吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市, ... 
- 吝啬的国度  ---用vector  来构图
		根据题目可以看出来 有n 个城市 只有 n-1 条路线 那么 就可以确定这个图中 不存在 圆 所以从一个点到另一个点 只有一条唯一的路 所以从一个节点到另一个节点 那么 这个节点只有一个唯 ... 
- Nyoj  吝啬的国度(图论&&双DFS)
		描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你 ... 
- nyist 20 吝啬的国度(dfs)
		吝啬的国度 题目描述: 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来. 现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市, 必须经过的前一 ... 
- nyoj20_吝啬的国度_DFS
		吝啬的国度 时间限制: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吝啬的国度
		吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ... 
- 吝啬的国度 nyoj
		吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市, ... 
随机推荐
- cv2.imread BGR模式
			openCV 的cv2.imread()导入图片时是BGR通道顺序,这与Matplotlib的显示,或者读取图片的通道不同,如果需要可以转换为RGB模式,以下代码显示不同之处,但BGR在许多地方使用, ... 
- hl7 java 解析
			原文链接 http://blog.csdn.net/ycyangcai/article/details/6643784 Hl7引擎的目标主要是解决将数据按HL7协议的要求标准化,和标准业务的集成和不同 ... 
- [问题解决] Could not update ICEauthority file /home/username/.ICEauthority
			错误: Could not update ICEauthority file /home/username/.ICEauthority 发生场景: 虚拟机下的ubuntu server12.04 解决 ... 
- 对Msn协议的一点点研究
			这个也是好奇msn的协议还是2011年的时候写的, 就在网上找啊找啊, 可惜要不是不能用就是C++代码还有就是不完整, 到最后我也没弄成功,只到了下面这步就挂掉了...... 登录成功<=SBS ... 
- Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。
			原文:Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式. Android Activity 的四种启动模 ... 
- hdu4288 Coder
			Coder Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ... 
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
			MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效. 注:可以设置透明背景,但还不能做到透明度设置(如50%透明度) 如果设置了背景色,就不保留透明背景 默认背景色是透明的 [cpp] ... 
- 数据结构中La表的数据合并到Lb表中
			实验描述:La表中的数据为(3,5,8,11) Lb 表中的数据为(2,6,8,9,11,15,20) 将La表中的数据而不存在Lb表的数据插入到Lb表中,从而实现并集操作. 出现的问题:最后实现的 ... 
- 2014.9.3数据库CRUD
			CRUD 增删改查 DCL 数据控制语言:备份,grant DML 数据操作语言: CRUD DDL 数据定义语言:create drop alter 自增长列不能赋值 增: Insert into ... 
- node中的get请求和post请求的不同操作【node学习第五篇】
			获取get的请求内容 /** * Created by Administrator on 2016/8/5. */ var http = require("http"); var ... 
