N - Is It A Tree?(判断环)
#include <stdio.h>
using namespace std;
const int maxn = 100005;
int f[maxn], use[maxn];
void init()
{
for(int i=0; i<maxn; i++)
f[i] = i, use[i] = 0;
}
int Find(int x)
{
if(f[x] != x)
f[x] = Find(f[x]);
return f[x];
}
int main()
{
int u, v, ok=1, t=1;
init();
while(scanf("%d%d", &u, &v), u!= -1 || v!=-1)
{
if(u+v == 0)
{
int sum = 0;
for(int i=0; i<maxn; i++)
{
if(use[i] == 1 && f[i] == i)
sum++;
}
if(ok && sum < 2)printf("Case %d is a tree.\n", t++);
else printf("Case %d is not a tree.\n", t++);
ok = 1;
init();
}
else
{
use[u] = use[v] = 1;
u = Find(u), v = Find(v);
if(u != v)
f[u] = v;
else ok = 0;
}
}
return 0;
}
转载于:https://www.cnblogs.com/liuxin13/p/4669887.html
N - Is It A Tree?(判断环)相关推荐
- CF1385E Directing Edges (拓扑排序判断环)
整理的算法模板合集: ACM模板 luogu链接 我们直接先把所有的有向边建图,然后拓扑排序判断环,如果此时有环那么直接输出no 为了将无向边变成有向边之后依旧无环,那么我们只需要遵循拓扑排序的规则, ...
- LeetCode 287. Find the Duplicate Number (时间复杂度O(n)) + 链表判断环
LeetCode 287. Find the Duplicate Number 暴力解法 时间 O(nlog(n)),空间O(n),按题目中Note"只用O(1)的空间",照理是过 ...
- poj 1932(spfa判断环)
题目链接:http://poj.org/problem?id=1932 题意:根据给出的关系图,判断是否存在一条从1到n的路径,且最终的cost值为正值,初始值为100.中间各个room的值有正有负. ...
- 杭电 1272 并查集判断环
话说这道题纠结了很久,,先写了一道类似的题,写这道题时感觉很难,,今天上午蓦然发现,,,,,,理解错题意了,,我去....害我想了那么长时间.这道题主要就是判断一下有没有环,还有就是节点数减去边数等于 ...
- 弗洛伊德龟兔赛跑算法(弗洛伊德判圈算法)
弗洛伊德( 罗伯特・弗洛伊德)判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm),是一个可以在有限状 ...
- 树状dp(这个人写得好多转来慢慢看)
树状动态规划定义 之所以这样命名树规,是因为树形DP的这一特殊性:没有环,dfs是不会重复,而且具有明显而又严格的层数关系.利用这一特性,我们可以很清晰地根据题目写出一个在树(型结构)上的记忆化搜索的 ...
- Prim算法和Kruskal算法求最小生成树
Prim算法 连通分量是指图的一个子图,子图中任意两个顶点之间都是可达的.最小生成树是连通图的一个连通分量,且所有边的权值和最小. 最小生成树中,一个顶点最多与两个顶点邻接:若连通图有n个顶点,则最小 ...
- LeetCode Course Schedule(有向图中是否存在环)
问题:给出个课程个数,及前提条件对[u,v],即修课程v之间需要修课程u,问是否存在环 思路: 对于有向图的判断环 一种方式是使用dfs,访问结点的状态分为三种,white,gray,black,其中 ...
- c++ 不撞南墙不回头——树形动态规划(树规)
不撞南墙不回头--树规总结 焦作一中信息学oy 之所以这样命名树规,是因为树规的这一特殊性:没有环,dfs是不会重复,而 ...
最新文章
- mysql innodb flus_MySQL参数解析innodb_flush_neighbors
- 转 -----那些年总也记不牢的IO
- electron 项目的搭建方式,借助 node 和 npm
- chrome inspect 远程调测:Chrome on Android之一 普通调试
- buck电路pscad仿真_100kVar SVG模块主电路选型分析[李博士]
- 数组的连续最大子段合
- 快速上手,教你开发第一个基于 AutoML 的量化投资决策应用
- [转载] 利用Python构建股票交易策略 !
- linux 计时程序,Linux下使用clock_gettime给程序计时
- strcat函数使用中出现的问题
- 关于select和option下拉框样式问题
- 想更快成长更应该关注的博客
- 【JAVASCRIPT】-【AES加密解密】01、前端AES加密解密的方式
- ROC曲线、AUC、Gini系数和KS值
- 计算机主机机箱连接各部件,电脑的各部件组装都是用什么联接的
- Chrome、Edge等浏览器多线程下载功能开启
- 自动填充被拆分的单元格
- 融合蓝牙与IoT 拓展Wi-Fi商业价值
- FeignClient调用接口接收不到参数问题
- Error (176310): Can't place multiple pins assigned to pin location Pin_F16
热门文章
- SQL Try Catch
- Flume NG之Agent部署和sink配置HDFS且吐槽CSDN博客及客服态度
- 在线实时大数据平台Storm版本兼容的问题
- Python学习三——列表
- float占几个字节_一个HashMap对象占多少字节?
- 用python openpyxl合并多个excel文件
- DevExpress WPF MVVM入门例子
- Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法
- MySql提示服务已经启动成功但又提示can’t connect to MySQL server解决方法,mysql服务自动停止处理方法
- python 技术篇-pythoncom.PumpMessag()关闭、杀死它的进程,pythoncom.PumpMessag()运行卡住解决办法