POJ1308
1、题目链接地址
http://poj.org/problem?id=1308
2、源代码
#include<iostream>
using namespace std;
#define MAXN 100
int set[MAXN]; //set[]记录每个节点的父节点 int FindSet(int x) //寻找x所在根的根节点
{
if(set[x]==x)
return x;
if(set[x]==-x)
return -x;
else
set[x]=FindSet(set[x]);
return set[x];
}
int main()
{
int pointa,pointb,FSa,FSb;
int cas=,num=,I;
bool judge=,flag=;//judge为是否判断完,flag为是否有边输入
for(I=;I<MAXN;I++)
set[I]=-I;
while(cin>>pointa>>pointb,pointa>=)
{
if(pointa==)
{
if(num==||flag==)
cout<<"Case "<<cas<<" is a tree.\n";
else
cout<<"Case "<<cas<<" is not a tree.\n";
cas++;
flag=;
num=;
judge=;
for(I=;I<MAXN;I++)
set[I]=-I;
}
else
{
flag=; //有边
FSa=FindSet(pointa);
if(FSa==-pointa)
set[pointa]=pointa;
FSb=FindSet(pointb);
if(FSb==-pointb)
set[pointb]=pointb;
if(FSa==FSb)
{
num=;
judge=;
}
if(judge==)
{
if(FSb==pointb) //pontb是已出现过的根节点
{
if(FSa!=-pointa) //当pointa不是还没有出现过的点
{
num--;
}
set[pointb]=FindSet(pointa);
}
else
{
if(FSb==-pointb) //pointb还没有出现过
{
if(FSa==-pointa) //pointa还没有出现过
{
num++;
}
set[pointb]=FindSet(pointa);
}
else
{
num=;
judge=;
}
}
}
}
}
return ;
}
好久的东西,粗略整理一下。
POJ1308的更多相关文章
- poj1308 Is It A Tree?(并查集)详解
poj1308 http://poj.org/problem?id=1308 题目大意:输入若干组测试数据,输入 (-1 -1) 时输入结束.每组测试数据以输入(0 0)为结束标志.然后根据所给的 ...
- poj1308(简单并查集)
题目链接:http://poj.org/problem?id=1308 题意:x, y 表示x 与 y连接,给出一波这样的数据,问这组数据能否构成树,即不能形成回路,不能有多个根节点:要注意可以是空树 ...
- poj1308 并查集
比较恶心 1: 0 0 空树是一棵树 2: 1 1 0 0 不是树 3: 1 2 1 2 0 0 不是树... 4: 1 2 2 3 4 5 不是树 森林不算是树 5: 1 2 2 3 3 4 4 5 ...
- HDU1325 &&poj1308 基础并查集
和上一道小希的迷宫差点儿相同,可是在HDU上提交一直WA,POJ过了 HDU的数据太强了吧,强的我感觉数据有问题 题意:输入若干对点,推断是否是一颗树,转化过来也就是是否存在环 点数-边数=1,还要推 ...
- POJ1308 Is It A Tree?
题目大意:和HDU1272-小希的迷宫题目一样, 如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径 ...
- poj1308(并查集)
题目链接:http://poj.org/problem;jsessionid=436A34AE4BE856FB2DF9B264DCA9AA4E?id=1308 题意:给定一些边让你判断是否构成数. 思 ...
- Is It A Tree?----poj1308
http://poj.org/problem?id=1308 #include<stdio.h> #include<string.h> #include<iostream ...
- (并查集)Is It A Tree? --POJ--1308
链接: http://poj.org/problem?id=1308 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#probl ...
- 并查集——poj1308(并查集延伸)
题目链接:Is It A Tree? 题意:给你一系列形如u v的点对(u v代表一条由u指向v的有向边),请问由给你的点构成的图是不是一棵树? 树的特征:①每个节点(除了根结点)只有一个入度:②只有 ...
随机推荐
- Java虚拟机运行时数据区域划分
Java虚拟机数据运行时区域 方法区(Method Area) 存储加载的类信息,常量,静态变量,编译器编译后的代码等数据.虽然JVM规范把方法区描述为堆的一个逻辑部分,但它却有一个别名叫做N ...
- 演示使用Metasploit入侵Windows
我使用Kali Linux的IP地址是192.168.0.112:在同一局域网内有一台运行Windows XP(192.168.0.108)的测试电脑. 本文演示怎么使用Metasploit入侵win ...
- libwebsockets libwebsockets-webserver.c hacking
/********************************************************************************** * libwebsockets ...
- 使用OpenCV对图像进行缩放
OpenCV:图片缩放和图像金字塔 对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像. 要缩小图像,一般推荐使用CV_INETR_A ...
- 《笔者带你剖析Apache Commons DbUtils 1.6》(转)
前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更 多的是依靠Hibernate.Ibatis.Spring JDBC.JPA等大厂提供的持久层技术解决方案, ...
- CF 1088(A , B , C , D)——思路
http://codeforces.com/contest/1088 A:Ehab and another construction problem 输出 2 和 n(偶数的话)或者 2 和 n-1( ...
- eclipse 中xml文件的字体改不了
XML Editor的改不了. 修改colors & fonts里的eclipse中打开window->prefece->generation-basic 下 Text Edito ...
- Could not find class 'org.ksoap2.serialization.SoapObject
Could not find class 'org.ksoap2.serialization.SoapObject工程编译没问题,一在模拟器运行就报错! 这是由于ADT版本过高引发的问题,解决办法: ...
- python3之scrapy安装使用
需要安装的包 pip install scrapy selenium 可能需要卸载重装的模块 lxml cryptography cffi pypiwin32 pip uninstall xx ...
- 转:oracle常见重要视图-v$sql,v$sql_plan,v$sqltext,v$sqlarea,v$sql_plan_statistcs
v$sql V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cursor(子游标)存在,在V$SQLAREA为所有c ...