ZZULIOJ 1787 生化危机 (vector+DFS)
1787: 生化危机
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 64 Solved: 19
SubmitStatusWeb Board
Description
X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸......研究失败了, 他在蜥蜴身上实验的时候, 蜥蜴发生了变异, 更糟糕的是, 蜥蜴逃出了生化实验室.
恐怖的事情发生了, 疫情以X博士所在的城市为中心向四周扩散开, 最终, 整个地球上的城市都被感染了.假设整个地球一共有N个城市, 这N个城市是连通的, 有N-1条通道把他们连接起来.病毒会以一座城市为中心,在一天的时间内, 会把和他相连的周围的所有城市感染. 那么, 多少天的时间, 整个地球的城市都感染呢?
Input
第一行输入一个T(T <= 50), 表示一共有T组测试数据. 每组数据第一行两个数n, k. n表示有n(2 <= n <= 10000)个城市, 代表城市1-n, k是X博士所在的城市. 接下来n-1行, 每行有两个数u, v, 表示城市u和v之间有一条通道.
Output
每组数据第一行输出第一个数 x , 表示整个地球感染需要x天. 接下来 x 个数, 第i个数表示第i天感染了城市的数量. (注意, 每组数据第二行每个数据后边都有一个空格).
Sample Input
Sample Output
思路:用vector存储相连的结点,然后从起点开始搜索,对感染到的结点进行标记,然后在搜索过程中进行计数,DFS几次就是第几天+1
ac代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<iostream>
#include<algorithm>
#define fab(a) (a)>0?(a):(-a)
#define LL long long
#define MAXN 100010
#define mem(x) memset(x,0,sizeof(x))
#define INF 0xfffffff
#define PI acos(-1.0)
using namespace std;
vector<int>map[MAXN];
int bz[MAXN];
int ans[MAXN];
void dfs(int v,int x)
{for(int i=0;i<map[v].size();i++){if(bz[map[v][i]]==0){bz[map[v][i]]=1;ans[x]++;dfs(map[v][i],x+1);}}
}
int main()
{int t,i;int n,m,q,w;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);mem(ans);mem(bz);for(i=1;i<=n;i++){ map[i].clear();} for(i=1;i<n;i++){scanf("%d%d",&q,&w);map[q].push_back(w);map[w].push_back(q);}bz[m]=1;dfs(m,2);int cnt=1;for(i=1;i<=n;i++) if(ans[i]) cnt++;printf("%d\n",cnt);printf("1 ");for(i=1;i<=n;i++) if(ans[i]) printf("%d ",ans[i]);printf("\n");}return 0;
}
ZZULIOJ 1787 生化危机 (vector+DFS)相关推荐
- zzulioj 1787: 生化危机 (vector+dfs) 好题
1787: 生化危机 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 70 Solved: 20 SubmitStatusWeb Board Desc ...
- zzuli 1787: 生化危机 (bfs与dfs)
1787: 生化危机 Description X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸......研究失败了, 他在蜥蜴身上实验的时候, 蜥蜴发生了变异, 更糟糕的是, 蜥蜴逃出了 ...
- zzuli 1787: 生化危机 (BFS)
http://acm.zzuli.edu.cn/problem.php?id=1787 1787: 生化危机 Description X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸... ...
- zzuli生化危机(dfs)
生化危机 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 73 Solved: 21 SubmitStatusWeb Board Descriptio ...
- 2262: master(vector + dfs)
这就是!!! 题目描述 有N个人,编号为1至N,他们相互之间拜师学艺. 某个时刻,如果甲向乙拜师,一般情况下乙就将甲收为徒弟.这时乙会将甲视为大徒弟,而所有甲的徒弟(如果有的话)便成为乙的小徒弟. 但 ...
- lego-loam数据_使用lego minifigures数据集在fastai中对datablocks api图像进行分类
lego-loam数据 The topics covered in this post are as follows 这篇文章涵盖的主题如下 Introduction 介绍 The Task 任务 T ...
- linux与linux传文件乱码,关于Linux与windows传递文件乱码问题
linux下一般是采用utf-8的编码,而我们在windows上编辑文件时是gb2312的编码.所以导致中文编码会乱码.要更正这个问题实际上很简单只要把文件转换成utf-8编码格式然后再导入就ok啦. ...
- PTA 7-51 生化危机 (25分) dfs
人类正在经历一场生化危机,许多城市已经被病毒侵袭,这些城市中的人们为了避免感染病毒,计划开车逃往其他没有被病毒入侵的城市(安全城市).有些城市之间有公路直达,有些没有.虽然他们知道哪些城市是安全的,但 ...
- vector邻接表建图+DFS+BFS
以边操作为主的图用边集数组存储比较好,相比链式前向星,vector建图更容易懂. #include <iostream> #include <cstdio> #include ...
最新文章
- 深度学习(训练/开发/测试集)的划分技巧
- mysql存储语句_MYSQL 常用语句保存
- 九十年代以来的文学事变与60后70后80后作家的写作之三
- 读《可复制的领导力》
- 黑马程序员---java基础------------------多线程
- javascript 西瓜一期 15 数据的存储单位
- bokeh.model API
- ubuntu中实践操作系统第二章系统调用与课件不同之处
- RDD与DataFrame
- python 灰度图像转彩色_彩色图像--伪彩处理 灰度图转伪彩色图像
- 河北化工医药职院美和易思软件技术专业“指舞飞扬”比赛圆满成功
- 23种设计模式——最好理解的代理模式
- 分享一些百度贴吧引流的实用干货和防删技巧
- php博客视频教程,ThinkPHP5 博客项目实战视频教程
- 谷歌搜索技巧(可看全球眼或某些站密码)
- android 永久root权限,安卓 实现永久性开启adb 的root权限
- 梦想从来不是手里的钻石,而是放到天上的风筝!
- Qt相关资源下载百度云地址 永久有效
- 这 7 门 编程语言最适合新手学习
- 【146期】面试官问:说一说 RabbitMQ 的几种工作模式和优化建议?