PAT1021Deepset Root
题意:
连通则输出最深点。第一步找某个点的最深的,然后从这个最深的点查找其他最深点,做并集。
不连通则输出连通图个数。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<set>
#include<vector>
#include<cstring>
#include<iterator>
#include<algorithm>
using namespace std;
#define N (10010) int n;
vector<int> vcMap[N];
bool bVis[N] = {};
int maxLen = ;
set<int> setRes;
set<int> setRes2;
set<int> setRes3;
void dfs(int curI,int iLen)
{
bVis[curI] = ;
++iLen;
if(iLen > maxLen)
{
setRes.clear();
maxLen = iLen;
setRes.insert(curI);
}
else if(iLen == maxLen)
{
setRes.insert(curI);
}
for(int i=;i<vcMap[curI].size();++i)
{
if(!bVis[vcMap[curI][i]])
dfs(vcMap[curI][i],iLen);
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<n-;++i)
{
int a,b;
scanf("%d%d",&a,&b);
vcMap[a].push_back(b);
vcMap[b].push_back(a);
}
int k=;
for(int i=;i<=n;++i)
{
if(!bVis[i])
{
++k;
dfs(i,);
set_union(setRes.begin(), setRes.end(), setRes2.begin(),
setRes2.end(), inserter(setRes2, setRes2.begin()));
}
}
if(k==)
{
for(int i=;i<=n;++i)
{
if(setRes2.find(i)!=setRes2.end())
{
memset(bVis,,sizeof(bVis));
dfs(i,);
break;
}
}
set_union(setRes.begin(), setRes.end(), setRes2.begin(),
setRes2.end(), inserter(setRes2, setRes2.begin()));
set<int>::iterator it = setRes2.begin();
for(;it != setRes2.end();it++)
printf("%d\n",*it);
}
else
printf("Error: %d components\n",k);
return ;
}
PAT1021Deepset Root的更多相关文章
- Centos 下 mysql root 密码重置
重置mysql密码的方法有很多,官网也提供了很方便的快捷操作办法,可参考资料 resetting permissions .本文重置密码的具体步骤如下: 一.停止MySQL(如果处于运行状态) #se ...
- CentOS7 重置root密码
1- 在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4 - 现在按下 Con ...
- Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)
忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...
- Atitit godaddy 文件权限 root权限设置
Atitit godaddy 文件权限 root权限设置 1. ubuntu需要先登录,再su切换到root1 2. sudo 授权许可使用的su,也是受限制的su1 3. ubuntu默认吗roo ...
- Mysql 忘记root密码处理办法
一.更改my.cnf配置文件 1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 2.在[mysqld]下添加skip-grant-t ...
- Ubuntu设置root用户登录图形界面
Ubuntu默认的是root用户不能登录图形界面的,只能以其他用户登录图形界面.这样就很麻烦,因为权限的问题,不能随意复制删除文件,用gedit编辑文件时经常不能保存,只能用vim去编辑. 解决的办法 ...
- php利用root权限执行shell脚本
vi /etc/sudoers , 为apache用户赋予root权限,并且不需要密码,还有一步重要的修改(我被困扰的就是这个地方) root ALL=(ALL) ALL apache ALL= ...
- linux下如何添加一个用户并且让用户获得root权限
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing pass ...
- 如何重置硬盘遭到“损坏”的Linux系统root用户密码
传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名.而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障 ...
随机推荐
- Centos系统备份
使用root用户切换到根目录 然后,使用下面的命令备份完整的系统: tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exc ...
- java 代理模式具体解释
java 动态代理(JDK和cglib) 设计模式这东东每次看到就明确可过段时间又不能非常流利的说出来.今天就用具体的比喻和实例来加深自己的理解(小弟水平不高有不正确的地方希望大家能指出来). (1) ...
- 【POJ 1275】 Cashier Employment(差分约束系统的建立和求解)
[POJ 1275] Cashier Employment(差分约束系统的建立和求解) Cashier Employment Time Limit: 1000MS Memory Limit: 10 ...
- png图片解码
PNG.可移植网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的"PNG's Not GIF",是一种位图文件(bitmap ...
- MongDB应用
题外话 工作3年,了解的技术颇多,但都是一知半解,了解不是很透澈.用过的技术,就像猴子搬过的包谷,搬一个丢一个.几年风雨,真有点一缕清风过,片叶不沾身的味道. 为强化知识点,提升文档及学习能力,我把以 ...
- Python爬虫开发【第1篇】【HTTP与HTTPS请求与响应】
一.HTTP.HTTPS介绍 HTTP协议(超文本传输协议):一种发布.接收HTML页面的方法 HTTPS协议:简单讲是HTTP安全版,在HTTP下加入SSL层 SSL(安全套接层),用于WEB的安全 ...
- Redis内存使用达到maxmemory设定值后玩家数据无法写入解决 Redis数据“丢失”问题
Redis数据“丢失”问题 - CSDN博客 https://blog.csdn.net/real_myth/article/details/52582739 Redis内存使用达到maxmemory ...
- Lucas模板&快速幂模板
/* *********************************************** Author :guanjun Created Time :2016/5/20 0:28:36 F ...
- mysqldump 导出数据表,和数据
目录 导出数据库表与数据 导出数据表数据 导出多个表数据 只导出数据 只导出创建表的数据 导出数据库表与数据 mysqldump -uroot -p caomall>tmp.sql 导出数据表数 ...
- 【附论文】Facebook推面部识别软件 精准度高达97.25%
论文下载链接:http://pan.baidu.com/s/1gd86HXp 以下转载自36kr. 认脸对于人来说不是什么难事,除非是韩国小姐才需要最强大脑.但是计算机做同样的事情就要困难得多了.不过 ...