N - Is It A Tree?(判断环)
2015-07-23 11:18
218 查看
题意,就是判断这点点是不是组成的一颗树,也就是判断是否有环,就是没看出来如果是森林怎么办,试一试吧,最可恶的还没有说有多少节点。。。。。就是个坑//////////////////////////////////////////////////////////////////坑,这题就是一个彻头彻尾的坑,首先数据不连接,需要一个标记数组来判断出现的都是那些节点,数组要开到10w,而且还有可能这棵树没有节点,是一个空树,也就是只有 0 0,还要判断是不是森林,要输出这也是一颗树.....确实很无聊的题目,需要让人试错
#include <stdio.h>
#include<algorithm>
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;
}
#include <stdio.h>
#include<algorithm>
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;
}
相关文章推荐
- 第6章 服务模式 Service Interface(服务接口)
- eclipse配置--xml自动提示
- swift学习03-快速学习常量变量
- Javascript闭包(Closure)
- 日经社説 20150723 スマホ「2年縛り」が映す通信の寡占化
- hibernate学习笔记(八)
- 【冀宝er要逆袭】POJ-1321-棋盘问题,赶脚和八皇后问题是一个思路
- 对binary-search-tree的tree-delete算法的更正
- ASP.NET请求处理过程
- 第6章 服务模式 Service Interface(服务接口)
- 我活着
- 231Power of Two
- ExcelUtils遍历集合时获取当前的索引
- iOS模拟器状态栏改变字体颜色
- 使用图灵api创建微信聊天机器人
- 函数参数的传递问题(一级指针和二级指针)
- Spring框架下的管理员登录功能实现
- Android Sqlite 批量 insert/update 提高效率
- 通过网页的JS代码启动移动APP
- IntelliJ IDEA的光芒会盖过Eclipse吗