本文废除!!!

参考链接:UVALive5461 UVA615 POJ1308 ZOJ1268 Is It A Tree?【并查集】




Regionals 1997 >> North America - North Central NA

问题链接:UVALive5461 UVA615 POJ1308 Is It A Tree?。

问题简述:若干组测试用例,最后两个-1(-1 -1)结束。每个测试用例包括若干组边(两个整数组成),最后两个0(0 0)结束。判定每个测试用例是否为一棵树。

问题分析:判定有向图是否为一棵树的问题。可以用那些边构造一个并查集,构建并查集时,如果有向边的两个结点的根相同则不是一棵树,同时所有的结点指向的根应该是相同的。

注意点:结点虽然用整数表示,然而是随意的,而且范围不定。

程序说明:程序中,假定最大的结点不超过100000。将所有结点放入集合中,判定结点的根是否相同时,只需要考虑集合中的元素。

参考链接:UVALive5461 UVA615 POJ1308 HDU1325 Is It A Tree?。

AC的C++语言程序如下:

/* UVALive5461 UVA615 POJ1308 Is It A Tree? */#include <iostream>
#include <cstdio>using namespace std;const int MAXN = 100000;// 并查集
class UF {
private:int v[MAXN+1];bool visited[MAXN+1];int length;bool nocircleflag;    // 环标记int edgecount;      // 边计数
public:UF(int n) {length = n;}// 压缩int Find(int x) {if(x == v[x])return x;elsereturn v[x] = Find(v[x]);}bool Union(int x, int y) {edgecount++;visited[x] = true;visited[y] = true;x = Find(x);y = Find(y);if(x == y) {nocircleflag = false;return false;} else {v[x] = y;return true;}}bool isconnect() {int rootcount = 0;for( int i=0 ; i<=MAXN ; i++ )if(visited[i])rootcount++;return (rootcount == edgecount + 1);}inline bool nocircle() {return nocircleflag;}void init() {nocircleflag = true;edgecount = 0;for(int i=0; i<=length; i++)v[i] = i, visited[i] = false;}
};int main()
{int src, dest, caseno=0;UF uf(MAXN);while(scanf("%d%d", &src, &dest) != EOF) {if(src == -1 && dest == -1)break;uf.init();if(src==0 && dest==0) {//为空树printf("Case %d is a tree.\n", ++caseno);} else {uf.Union(src, dest);for(;;) {scanf("%d%d", &src, &dest);if( src==0 && dest==0 )break;uf.Union(src, dest);}if(uf.nocircle() && uf.isconnect())printf("Case %d is a tree.\n", ++caseno);elseprintf("Case %d is not a tree.\n", ++caseno);}}return 0;
}

UVALive5461 UVA615 POJ1308 Is It A Tree?(解法二)【废除!!!】相关推荐

  1. 从LeetCode 679. 24 Game--C++ 解法--二十四点 到穷举24点所有可能性-24点大全

    从LeetCode 679. 24 Game–C++ 解法–二十四点 到穷举24点所有可能性 此文首发于我的个人博客:zhang0peter的个人博客 LeetCode题解文章分类:LeetCode题 ...

  2. [CareerCup] 4.5 Validate Binary Search Tree 验证二叉搜索树

    4.5 Implement a function to check if a binary tree is a binary search tree. LeetCode上的原题,请参见我之前的博客Va ...

  3. 隐形Euler方法的java程序_常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  4. HDU1106 排序(解法二)(废除!!!)

    本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序[字符串+整数+排序]. 问题链接:HDU1106 排序. 问题简述:参见上述链接. 问题分析:这个程序的逻辑并不十分复杂,主 ...

  5. 【MPI编程】矩阵向量乘法--解法二(高性能计算)

    简述 有留心过的朋友可能会发现,其实我没写过解法一. 因为解法一就是大家最直观的感受的一种解法. 将矩阵按照行划分,之后,再每个线程都用整个向量跟这个块做内积.之后,传回来一个数值. 这里的方法二, ...

  6. 常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  7. 决策树(decision tree)(二)——剪枝

    决策树(decision tree)(二)--剪枝 **注:本博客为周志华<机器学习>读书笔记,虽然有一些自己的理解,但是其中仍然有大量文字摘自周老师的<机器学习>书. 决策树 ...

  8. SQL Tree解法

    create table tb(id varchar(3) , pid varchar(3) , name varchar(10)) insert into tb values('001' , nul ...

  9. HDU4607 Park Visit(解法二)【废除!!!】

    本文废除!!! 参见链接:HDU4607 Park Visit[DFS] 问题链接:HDU4607 Park Visit. 题意简述:莱克尔和她的朋友到公园玩,公园很大也很漂亮.公园包含n个景点通过n ...

最新文章

  1. 设置WebStorm用Ctrl+鼠标滚轮上、下调整编辑器代码字体大小
  2. Visual Studio 2015 速递(4)——高级特性之移动开发
  3. 5渲染判断_先渲染再对焦,KeyShot 深度通道在 Photoshop 中的对接
  4. android spp协议,Android蓝牙开发SPP协议通信
  5. sscom打开时提示error reading comcombobox1
  6. java proj4j 兰勃特投影设置地球半径 (+R )无效问题
  7. ffmpeg源码国内gitee下载
  8. 百度信息流投放效果不稳定,意图词要怎么筛选,先测试词包还是先测试创意好?
  9. windows 远程桌面连接 bat
  10. Android 10去除电池图标以及设置
  11. unity材质球复制
  12. Excel表格设置下拉选项并应用到整列及清除下拉项设置
  13. Linux永久删除文件恢复
  14. JS 时间加减 / 小时加减
  15. 计算机上静音快捷键是什么,电脑静音快捷键是什么(如何设置电脑一键静音?)...
  16. 解决飞鸽传书看不到自己想要找的好友
  17. android studio 61歌曲服务器搭建 歌曲app 下载 完整代码
  18. Hang Detect 问题
  19. 找零钱问题——贪心算法
  20. stm8L 初始化系统时钟

热门文章

  1. ArcGIS Pro 简明教程(3)数据编辑
  2. 使用PyQt来编写第一个Python GUI程序
  3. C# BackGroundWorker 的简单使用
  4. vue-transition过渡动画
  5. 实用typescript_TypeScript 泛型使用2-常见的工具类型
  6. android 小米截图,小米工程师晒基于Android Q定制的MIUI截图
  7. oracle 052 题库变了,Oracle OCP题库变了,052全新题库收集整理-30
  8. 如何编写高效优雅 Java 程序
  9. OnePill本地保存用户的结构
  10. Python 之 变量的基本使用