生化危机

发布时间: 2015年10月10日 18:05   时间限制: 1000ms   内存限制: 256M

描述

X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸......研究失败了, 他在蜥蜴身上实验的时候, 蜥蜴发生了变异, 更糟糕的是, 蜥蜴逃出了生化实验室.

恐怖的事情发生了, 疫情以X博士所在的城市为中心向四周扩散开, 最终, 整个地球上的城市都被感染了.假设整个地球一共有N个城市, 这N个城市是连通的, 有N-1条通道把他们连接起来.病毒会以一座城市为中心,在一天的时间内, 会把和他相连的周围的所有城市感染. 那么, 多少天的时间, 整个地球的城市都感染呢?

输入

第一行输入一个T(T <= 50), 表示一共有T组测试数据.
每组数据第一行两个数n, k. n表示有n(2 <= n <= 10000)个城市, 代表城市1-n, k是X博士所在的城市.
接下来n-1行, 每行有两个数u, v, 表示城市u和v之间有一条通道.

输出

每组数据第一行输出第一个数 x , 表示整个地球感染需要x天.
接下来 x 个数, 第i个数表示第i天感染了城市的数量.
(注意, 每组数据第二行每个数据后边都有一个空格)

样例输入1 复制

2
3 1
1 2
2 3
3 2
1 2
2 3

样例输出1

3
1 1 1
2
1 2

思路 :

1. 存图    , vector 数组存边

2. 从起点开始,向后深搜,沿途标记走过的点,沿途计算ans 数组 每步感染的数目。

3. 打印输出。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;const int maxn = 10100;vector <int> link[maxn];  //记录关系
bool sign[maxn]; // 标记是否走过
int ans[maxn]; // 记录结果void init(int m) // 初始化
{memset(sign,0,sizeof(sign));memset(ans,0,sizeof(ans));for(int i = 0; i <= m; i++)link[i].clear();
}void dfs(int cur,int step)
{for(int i = 0; i < link[cur].size(); i++){int tmp = link[cur][i];if(sign[tmp] == 0){sign[tmp] = 1;ans[step] ++;dfs(tmp,step+1);}}
}int main()
{int t;int m,n;cin >> t;while(t--){cin >> m >> n;init(m);  // 初始化for(int i = 0; i < m-1; i++){int x,y;cin >> x >> y;link[x].push_back(y);link[y].push_back(x);}sign[n] = 1;ans[1] = 1;dfs(n,2);int cnt = 0 ;while(ans[cnt+1]) cnt++;cout << cnt <<endl;for(int i = 1; i <= cnt; i++)cout << ans[i] << " ";cout << endl;}return 0;
}

生化危机

发布时间: 2015年10月10日 18:05   时间限制: 1000ms   内存限制: 256M

描述

X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸......研究失败了, 他在蜥蜴身上实验的时候, 蜥蜴发生了变异, 更糟糕的是, 蜥蜴逃出了生化实验室.

恐怖的事情发生了, 疫情以X博士所在的城市为中心向四周扩散开, 最终, 整个地球上的城市都被感染了.假设整个地球一共有N个城市, 这N个城市是连通的, 有N-1条通道把他们连接起来.病毒会以一座城市为中心,在一天的时间内, 会把和他相连的周围的所有城市感染. 那么, 多少天的时间, 整个地球的城市都感染呢?

输入

第一行输入一个T(T <= 50), 表示一共有T组测试数据.
每组数据第一行两个数n, k. n表示有n(2 <= n <= 10000)个城市, 代表城市1-n, k是X博士所在的城市.
接下来n-1行, 每行有两个数u, v, 表示城市u和v之间有一条通道.

输出

每组数据第一行输出第一个数 x , 表示整个地球感染需要x天.
接下来 x 个数, 第i个数表示第i天感染了城市的数量.
(注意, 每组数据第二行每个数据后边都有一个空格)

生化危机 (深搜 建图)相关推荐

  1. 深搜DFS\广搜BFS 图初步入门

    首先,不管是BFS还是DFS,由于时间和空间的局限性,它们只能解决数据量比较小的问题. 深搜,顾名思义,它从某个状态开始,不断的转移状态,直到无法转移,然后退回到上一步的状态,继续转移到其他状态,不断 ...

  2. 算法学习笔记(六) 二叉树和图遍历—深搜 DFS 与广搜 BFS

    图的深搜与广搜 复习下二叉树.图的深搜与广搜. 从图的遍历说起.图的遍历方法有两种:深度优先遍历(Depth First Search), 广度优先遍历(Breadth First Search),其 ...

  3. 货币套汇(图路径)-- 数据结构 (深搜+Floyd算法)

    深搜+Floyd算法 深搜 Floyd算法 题目描述 套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币. 例如,假定1 美元可以买0.7 英镑,1 英镑可以买9.5法郎,1 ...

  4. 图 相关算法~从头学算法【广搜、 深搜、 拓扑排序、 并查集、 弗洛伊德算法、迪杰斯特拉算法】

    图的相关主流算法主要有: 广度优先搜索 深度优先搜索 拓扑排序 并查集 多源最短路径(弗洛伊德算法) 单源最短路径(迪杰斯特拉算法) 其中呢,最基本的是前两种,也就是平时常用的广搜和深搜,本文中将概要 ...

  5. POJ2195费用流+BFS建图

    题意:       给你一个n*m的地图,上面有w个人,和w个房子,每个人都要进房子,每个房子只能进一个人,问所有人都进房子的路径总和最少是多少? 思路:       比较简单的最大流,直接建立两排, ...

  6. hdu3715 二分+2sat+建图

    题意:       给你一个递归公式,每多一层就多一个限制,问你最多能递归多少层. 思路:      先分析每一层的限制 x[a[i]] + x[b[i]] != c[i],这里面x[] = 0,1, ...

  7. ROADS POJ - 1724(限制条件的最短路)【邻接表+深搜】

    思路:先说下题意,题意第一行给了一个k,代表你有k的钱数,下一行有一个n,代表n个点,然后一个m,代表m条边,然后接下来m行,每行有四个数,分别代表起点.终点.路径长度和要花费的钱数,题目想问在花的钱 ...

  8. 搜索与图论1—深搜、宽搜、拓扑排序

    本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~ 本人Gitee账号:路由器,欢迎关注获取博客内容源码. 文章目录 一.深度优先搜索 1 排列数字 2 N皇后 二. ...

  9. Go 分布式学习利器(15) -- Go 实现 深搜和广搜

    强化语法,回顾算法. 通过Go语言实现 深度优先搜索 和 广度优先搜索,来查找社交网络中的三度好友关系(三度指的是一个节点到 其相邻节点 到 其相邻节点的节点 ,图递增三层好友关系). 涉及到的Go语 ...

最新文章

  1. Debian 7(Wheezy)下配置Open×××
  2. mysql数据库导入导出
  3. matlab读取高光谱影像
  4. 我的开源项目:TS封装格式分析器
  5. vue 实时显示当前时间
  6. flutter Android混淆
  7. Java new一个对象的过程
  8. 第十二课,assimp模型加载(数据加载篇)
  9. 利用C51单片机内部函数_corl_函数实现LED流水灯。
  10. 双路服务器单路运行,什么叫双路服务器?与PC机、单路机有什么区别?
  11. 搭建自己的wiki知识管理系统
  12. jmeter 接口测试 签名_JMeter处理接口签名(sign)
  13. DeepLearning论文阅读笔记(一):Cyclical Learning Rates for Training Neural Networks(CLR)
  14. Apache Calcite: 初窥门径
  15. 第一次将项目push到gitlab
  16. DSX-5000校准的意义?
  17. 换头像这个功能怎么测
  18. 硬盘文件无法删除提示文件损毁或无法访问的解决
  19. linux服务器安装gmt,linux GMT简易安装
  20. 计算机网络学习笔记 4.7 移动IP

热门文章

  1. 分布式协调器ZooKeeper3.4—程序员手册
  2. Vue写一个答题模板组件
  3. Activity的生命周期及Intent
  4. 将来是多久,看一看大佬的故事--《绝非偶然》
  5. 常州大学新生赛 F-大佬的生日礼包
  6. [信号处理] #1 FFT结果的物理意义
  7. ubuntu 18.04 IKFAST 运动学插件生成
  8. eWebEditor Manual
  9. 什么是yyyy-mm-dd格式
  10. 网络营销实战课-好用的工具推荐