当前位置: 首页 > 编程日记 > 正文

ny20 吝啬的国度

吝啬的国度

时间限制: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)
样例输入
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
代码一如下:
 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 const int N = 100005;
 5 bool visited[N];
 6 int res[N];
 7 vector<int> City[N];
 8 void dfs(int v)
 9 {
10 //cout<<v<<endl;
11     //cout<<City[v].size()<<"***";
12     for(int i = 0; i < City[v].size(); ++i)
13     {
14       int tmp = City[v][i];
15       if(!visited[tmp])
16       {
17           res[tmp] = v;
18            visited[tmp] = true;
19             dfs(tmp);
20       }
21     }
22 }
23 
24 int main()
25 {
26 int M, n, s, a, b, i, j;
27 cin>>M;
28 while(M--){
29 for(i = 0; i < N; ++i) if(!City[i].empty()) City[i].clear();
30 cin>>n>>s;
31     for(i = 1; i < n; ++i)
32    {
33       visited[i] = false;
34       cin>>a>>b;
35 //cout<<a<<b<<endl;
36       City[a].push_back(b);
37       City[b].push_back(a);  
38    }
39     res[s] = -1;
40         visited[s] = true;
41          dfs(s);
42       for(i = 1; i < n; ++i)
43           cout<<res[i]<<" ";
44              cout<<res[n]<<endl;
45 }
46 return 0;
47 }

解法二:

 1 #include <stdio.h>
 2 #include <memory.h>
 3 int map[100005];
 4 void judge(int currentCity)
 5 {
 6          int priorCity = map[currentCity];
 7          if (priorCity != 0)
 8          {
 9                  judge(priorCity);
10                   map[priorCity] = currentCity;
11          }
12 }
13 int main()
14 {
15              int i, n, m, s, A, B;
16                  scanf("%d", &n);
17               while (n--)
18               {
19                       scanf("%d%d", &m, &s);
20                        memset(map, 0, sizeof(map));
21 
22                           for (i = 1; i < m; i++)
23                            { scanf("%d%d", &A, &B);
24                             if (map[B] == 0)
25                                  map[B] = A;
26                                 else
27                                 {
28                                    judge(A);
29                                    map[A] = B;
30                                 }
31                            }
32                               judge(s);
33                               map[s] = - 1;
34                        for (i = 1; i <=m; i++)
35                              printf("%d ", map[i]);
36                              printf("\n");
37               }
38                            return 0;
39 }

转载于:https://www.cnblogs.com/lovychen/p/3215214.html

相关文章:

Linux常见命令(二)

随着Linux应用的扩展许多同学开始接触Linux&#xff0c;根据学习Windwos的经验往往有一些茫然的感觉&#xff1a;不知从何处开始学起。虽然Linux桌面应用发展很快&#xff0c;但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行&#xff0c;无…

谷歌编程语言年度榜NO.1:知识体系总结(2021版)

本文专注整理一些有关Python学习的知识体系。整理的Python知识体系主要包括基础知识&#xff0c;Python热门的应用方向&#xff0c;推荐书籍&#xff0c;FAQ以及一些常见面试题目&#xff0c;包含了作为一个Python全栈工程师以及数据分析工程师在开发工作和学习中需要用到或者可…

看看大网站到底是如何保障网络安全的

首先&#xff0c;服务器上用的是私有的操作系统和数据库&#xff0c;所谓私有&#xff0c;并不是完全自己写&#xff0c;而是说&#xff0c;全部都是进行私有化改造过的&#xff0c;一般使用开源的操作系统和数据库进行改造&#xff0c;比如说操作系统使用free bsd的改&#xf…

php 魔术方法 说明

1、__get、__set这两个方法是为在类和他们的父类中没有声明的属性而设计的。◆__get( $property ) 当调用一个未定义的属性时&#xff0c;此方法会被触发&#xff0c;传递的参数是被访问的属性名。◆__set( $property, $value ) 给一个未定义的属性赋值时&#xff0c;此方法会被…

小功能 - 收藏集 - 掘金

中国可以访问 Google Codelabs 网站啦&#xff01; - 掘金今天&#xff0c;Google 官方又宣布了一条信息「全球皆可访问的 Google Codelabs 网站」&#xff0c;说是全球&#xff0c;其实我们大家心里都明白&#xff0c;这是针对中国开发者而专门发布的一个网站&#xff0c;最近…

ASP.NET设置数据格式与String.Format使用总结

{0:d} YY-MM-DD{0:p} 百分比00.00%{0:N2} 12.68{0:N0} 13{0:c2} $12.68{0:d} 3/23/2003{0:T} 12:00:00 AM{0:男;;女} DataGrid-数据格式设置表达式 数据格式设置表达式 .NET Framework 格式设置表达式&#xff0c;它在数据显示在列中之前先应用于数据。此表达式由可选静态文本…

Android Display System --- Surface Flinger

SurfaceFlinger 是Android multimedia 的一个部分&#xff0c;在Android 的实现中它是一个service &#xff0c;提供系统范围内的surface composer 功能&#xff0c;它能够将各种[url]应用[/url]程序的2D 、3D surface 进行组合。在具体讲SurfaceFlinger 之前&#xff0c;我们先…

最新组合式模型量化方法,实现FPGA最高硬件利用率,准确率-推理速度达到SOTA...

作者 | 王言治来源 | AI科技大本营&#xff08;ID:rgznai100&#xff09;深度神经网络&#xff08;DNN&#xff09;在图像、语言处理等领域获得了巨大成功&#xff0c;而如何将这些网络部署在ASIC、FPGA等嵌入式设备仍是热门研究方向。结构搜索&#xff0c;以及传统的剪枝、量化…

消息服务发送短信,手机接收不到短信解决思路

阿里云使用消息服务&#xff0c;发送注册码给手机。测试几次发现手机都接收不到&#xff0c;后台也没报错&#xff01;今天我提交自己的工单&#xff0c;售后工程师已经帮我解决了&#xff0c;非常感谢他&#xff01;官方代码&#xff1a;https://help.aliyun.com/document_det…

Asp.net中具体的日期格式化用法

1.绑定时格式化日期方法: <ASP:BOUNDCOLUMN DATAFIELD "JoinTime " DATAFORMATSTRING "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN > 2.数据控件如DataGrid/DataList等的件格式…

日本「AI 鱼脸识别」项目,每分钟识别 100 条

来源 | HyperAI超神经头图 | 视觉中国近日&#xff0c;日本的一个 AI 分拣鱼类项目进入实验阶段。这将有望改善日本渔业劳动力老龄化及短缺的社会现状。日本作为岛国&#xff0c;其独特的地理位置&#xff0c;让国民自古以来就跟鱼结下了不解之缘&#xff0c;甚至形成了其独特的…

使用Spring实现邮件发送

2019独角兽企业重金招聘Python工程师标准>>> 这两天写个小程序需要使用邮件发送的功能&#xff0c;在网上搜索了一帮子文章&#xff0c;感觉还是使用Spring的邮件发送功能比较方便&#xff0c;哈哈&#xff0c;懒人就这样子了&#xff0c;不想再动了。整好了&#x…

GZip压缩与解压缩

GZIP的压缩与解压缩代码&#xff1a; public static class CompressionHelper{/// <summary> /// Compress the byte[] /// </summary> /// <param name"input"></param> /// <returns></returns> public static byte[] Compres…

String.Format()方法

String.Format方法是我们在.Net应用开发时经常使用到的&#xff0c;它的灵活使用有时能够达到事半功倍的效果&#xff0c;下面我们就借用MSDN上的一个示例来向大家展示String.Format的各种用法。 该示例展示了Numeric、DateTime和Enumeration标准格式的使用&#xff0c;另外&am…

Brian 的 Perl 问题之万能指南

为什么80%的码农都做不了架构师&#xff1f;>>> PerlChina brians Guide to Solving Any Perl Problem Home Page | All Pages | Recently Revised | Authors | Feeds | Export | 原 名&#xff1a;Brian’s Guide to Solving Any Perl Problem 中 文: Brian 的 Pe…

联手小米,雀巢中国推出健康管家Nesfinity,满足个性化生活需求管理

1月20日&#xff0c;雀巢中国携手小米战略合作正式开启&#xff0c;双方共同打造的雀巢健康管家“Nesfinity”正式发布。这项综合性智能健康生活新生态的合作&#xff0c;不仅开启了雀巢中国在智能物联网和大数据应用的新历程&#xff0c;更是双方由品牌合作跨入战略合作的开端…

使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒

下面程序使用了两种方法计算两个时间相差 天&#xff0c;小时&#xff0c;分钟&#xff0c;秒 package jodotest;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.joda.time.DateTime;import org.joda.time.Days;import …

C语言格式控制符和转义字符

1. 格式控制符 格式输出printf 作用是向终端输出若干个类型任意的数据。 格式&#xff1a;printf &#xff08;格式控制符&#xff0c;输出列表&#xff09; 1) 格式控制符 l &#xff05; 格式说明引导符。 l &#xff0d; 指定…

面试高频题:单链表的逆置操作/链表逆序

函数内对形参的操作并不能影响实参&#xff0c;函数内修改的是实参的副本。要想在函数内部修改输入参数&#xff0c;要么传入的是实参的引用&#xff0c;要么传入的是实参的地址。 #include <iostream> #include <cstdlib> #include <cstring>//strlen using…

猖狂!微软、思科源码惨遭黑客 100 万美元打包出售

【编者按】SolarWinds 黑客攻击事件又延伸出新的危害了&#xff1a;微软、思科、FireEye 等公司的源代码在一网站公开出售&#xff0c;明码标价&#xff0c;甚至打包价为一百万&#xff0c;究竟是什么情况&#xff1f;整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNn…

vmstart的用法

vmstat命令是最常见的Linux/Unix监控工具&#xff0c;可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率&#xff0c;内存使用&#xff0c;虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令&#xff0c;一个是Linux/Unix都支持&#xff0c;二是…

配置.net 3.0开发环境

开发.net 3.0 应用程序&#xff0c;需要配置开发环境。配置步骤如下&#xff1a;1. 开发.net 3.0&#xff0c;首先当然要安装.NET Framework 3.0 了安装前使用windowsupdate安装好最新的更新&#xff08;Windows XP SP2 和Windows 2003 SP1一定要安装&#xff09;&#xff0c;下…

杭电 hdu 2096

小明AB&#xff1a;#include<iostream> using namespace std; int main(){int n;cin>>n;cin.ignore();while(n--){int a,b;cin>>a>>b;cout<<(a%100b%100)%100<<endl;}return 0; }转载于:https://blog.51cto.com/beyond316/1261849

关于2021年及未来,人工智能的5大趋势预测

吴恩达教授&#xff08;美国斯坦福大学计算机科学系和电子工程系副教授&#xff09;曾反复强调一句名言&#xff1a;"人工智能是新电力。" 我们正跟随着人工智能发展的脚步&#xff0c;走向第四次工业革命的浪潮之巅。 毋庸置疑&#xff0c;人工智能已经成为社会进步…

京东618:智能机器人JIMI的进击之路

ArchSummit全球架构师峰会深圳站将于2017年7月7日~8日在深圳华侨城洲际酒店召开&#xff0c;大会设置了相关专题来深入解读电商大促背后的技术故事&#xff0c;大会还邀请了eBay、WalmartLabs等国外顶尖技术专家&#xff0c;分享AI促销、搜索引擎、异地多活、库存物流等核心架构…

读懂深度迁移学习,看这文就够了 | 赠书

百度前首席科学家、斯坦福大学副教授吴恩达&#xff08;Andrew Ng&#xff09;曾经说过&#xff1a;迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力。本文选自《深度学习500问&#xff1a;AI工程师面试宝典》&#xff0c;将重点介绍目前最热门的深度迁移学…

Visual Studio 2005 IDE 技巧和窍门

发布日期&#xff1a; 2007-02-26 | 更新日期&#xff1a; 2007-02-26James Lau Microsoft 项目经理 适用于&#xff1a; Microsoft Visual Studio 2005 摘要&#xff1a;Visual Studio 2005 是目前业内一流的开发工具&#xff0c;我想在此与大家分享一些使用技巧和窍门&#x…

ZOJ 1025 Wooden Sticks(快排+贪心)

题目链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId25 题目大意&#xff1a;机器运送n个木条&#xff0c;每个木条有一个长度和重量。运送第一根木条需要1分钟的准备时间&#xff0c;接下来如果后一根木条的长度和重量都大于等于前一根木条&…

Swift:UIKit中Demo(一)

关于Swift的基本概念及语法知识。我在前面的章节中已经介绍了非常多。这一节和下一节主要有针对性的解说Swift在实际UIKit开发中的使用场景及注意点。先来看看Demo的终于效果图。Demo分析&#xff1a; 1. 界面上面有三个button&#xff0c;他们的宽度不一致。 2. 点击每一个but…

jdbc封装与多并发的共鸣

欢迎来到&#xff1a;http://observer.blog.51cto.com代码的封装是一门艺术&#xff0c;封装得好&#xff0c;不但给自己便利&#xff0c;还可以给自己的维护提供帮助&#xff1b;同时&#xff0c;封装得好&#xff0c;还可以给看自己代码的人以赏心悦目的感觉&#xff0c;团队…