生化危机
发布时间: 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

利用邻接表存储图,考虑到城市个数比较多所以使用动态数组,注意数组的初始化和各项数据的初始化

#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int M = 1e4 + 5;
struct Node
{int id;int step;//记录感染的天数
};
vector<int> mapp[M];
queue<Node> q;
int cnt[M];//存储第几天感染了多少
int d;
bool book[M];
void bfs(int s)
{Node temp, next;temp.id = s;temp.step = 1;cnt[1] = 1;book[s] = true;q.push(temp);while(q.size()){temp = q.front();q.pop();vector<int>::iterator it;for(it=mapp[temp.id].begin();it!=mapp[temp.id].end();it++){if(!book[*it]){book[*it] = true;next.id = *it;next.step = temp.step + 1;d = max(d, next.step);cnt[next.step]++;q.push(next);}}}
}
int main()
{int n, k, t;int u, v;scanf("%d", &t);while(t--){d = -1;memset(cnt, 0, sizeof(cnt));memset(book, false, sizeof(book));scanf("%d%d", &n, &k);for(int i=1;i<=n;i++)mapp[i].clear();    //以上均为初始化for(int i=1;i<n;i++){scanf("%d%d", &u, &v);mapp[u].push_back(v);mapp[v].push_back(u);}bfs(k);printf("%d\n", d);for(int i=1;i<=d;i++)printf("%d ", cnt[i]);printf("\n");}return 0;
}

qduoj 生化危机相关推荐

  1. qduoj 生化危机ycb老师的电脑中毒了(邻接表)

    题目链接:https://qduoj.com/problem/22/点击打开链接 生化危机 发布时间: 2015年10月10日 18:05   时间限制: 1000ms   内存限制: 256M 描述 ...

  2. QDUOJ 生化危机 邻接表存图+BFS

    生化危机 发布时间: 2015年10月10日 18:05   时间限制: 1000ms   内存限制: 256M 描述 X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸......研究失败 ...

  3. lego-loam数据_使用lego minifigures数据集在fastai中对datablocks api图像进行分类

    lego-loam数据 The topics covered in this post are as follows 这篇文章涵盖的主题如下 Introduction 介绍 The Task 任务 T ...

  4. python画七边形的角度_python之turtle模块-生化危机

    相信很多人都看过<生化危机>,对里面的太阳伞公司应该都不陌生.太阳伞公司的图标如下. 今天我们就用python的turtle模块来画这样一把太阳伞. 思路如下: 1. 太阳伞可以近似的看成 ...

  5. 无路可逃java攻略_生化危机2重制版无路可逃怎么过_100丧尸模式幽灵生还者无路可逃流程攻略_3DM单机...

    <生化危机2:重制版>的幽灵生还者DLC中,当玩家通关了前面的三章之后就能解锁第四章--无路可逃,这个关卡需要解决100个丧尸,难度十分之高,下面小编就为大家带来一篇"lu_mk ...

  6. 使用VIA声卡 运行生化危机5无声音的解决方案 无需卸载旧驱动

    使用VIA声卡且驱动版本号是7300的朋友,运行生化危机5会出现无声音的情况.   坊间的解决办法是把现有的驱动降级到1550的驱动,但未必可以降级成功. 现在可以使用以下两种解决方案: 1. 下载 ...

  7. 美观实用 最新《生化危机》主题人体工学游戏椅公开

    卡普空官方周边日前推新,来自<生化危机>主题人体工学游戏椅公开,与著名游戏椅子品牌<COUGAR>合作打造,美观实用兼具,预定8月31日发售,敬请期待. ·作为日常久坐的游戏玩 ...

  8. 生化危机5 / BIOHAZARD5 简直就是一款完美的印钞机?(+2009.4.9)

    生化危机5已经发布已经有一周了,朋友很多都已经通关了吧. 单纯的看生化危机5的确是一个部精彩的游戏. 从那精美绝伦的画面,跌宕潜伏的好莱坞式的编剧,双人协同作战,还有Jill的悬念... 从每个方面看 ...

  9. linux游戏模拟器知乎,疯狂周三:異議あり!+TGS参展阵容:卡普空生化危机8,光荣真三新作_STEAM每日资讯_瞅啥网...

    逆转裁判 在其他地方如:QQ看点.搜狐微信公众号等看到本篇文章的读者们,本文首发于微信公众号STEAM每日资讯,觉得文章写的还不错的话欢迎关注!公众号每日更新,内容均为原创!ps:小黑盒.知乎和B站均 ...

最新文章

  1. Android 在menu中同时显示Icon和Text
  2. python中__str__与__repr__
  3. ModuleNotFoundError: No module named ‘config‘
  4. python内置函数源码_python如何查看内置函数源码
  5. Linux疑难杂症解决方案100篇(六)-SHELL编程条件判断和流程控制
  6. 数据库篇之[bsp_orders]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
  7. 液压与气压传动(机电)_简要问答_复习笔记
  8. 移动安全-Android安全测试框架Drozer
  9. THINKPAD T14 Windows 10系统安装
  10. HTML5 聚光灯特效
  11. python爬虫手机验证码登录_python爬虫解决手机验证码问题
  12. 【JokerのZYNQ7020】UART。
  13. 微信缓存导致调整内容不生效
  14. 用JSSE定制SSL连接
  15. bundle包是什么意思_【Xcode小技巧】生成Bundle包
  16. js转换时间戳一直转换成1970的解决方法
  17. 汇编语言 -- 计时器/倒计时
  18. (2019最新)云端批量群控智能管理系统
  19. 利用Python定时让微信发送信息
  20. routeDone with a webviewId 6 that is not the current page(env: Windows,mp,1.06.2209190; lib: 2.28.1)

热门文章

  1. python气象处理与绘图_Python气象数据处理与绘图(18):泰勒图
  2. JavaScript中Unicode编码和中文相互转换
  3. 射频电容 cog npo 等等
  4. 《计算机网络》第七版第一章总结及部分课后习题答案
  5. Beats:在 Docker 里运行 Filebeat
  6. 父子组件的生命周期执行顺序
  7. mysql创建联合索引_mysql如何创建多个联合索引
  8. Django如何发送电子邮件?
  9. 制作一个favcion.ico
  10. 全能成熟稳定开源分布式存储Ceph破冰之旅-上