这题之前在kuangbin的专题做到过,用的是并查集
题解:
这里的话判断他是不是一棵树的条件
1.一棵树只有一个根节点,所以我们记录所有点的入度,入度为0的点只能有一个。
2.出了根节点,其他的点入度只能为1,不然就会出现图上这种情况

3.所有点都必须要联通,不连通就是多棵树。

这样的话我们用并查集来给他进行合并即可
最后遍历所有的点,检查是否符合条件即可

/*Keep on going Never give up*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <math.h>
#include <string>
#include <list>
#include <set>
#include <queue>
#include <stack>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#define maxn  10010
//#define true false
//#define false true
const int MaxN = 0x3f3f3f3f;
const int MinN = 0xc0c0c00c;typedef long long ll;
ll mod = 998244353;
using namespace std;
int f[maxn];
int in[maxn];
bool visited[maxn];
int ifind(int x){if(x==f[x]) return x;return f[x]=ifind(f[x]);
}
void imerge(int x,int y){int dx=ifind(x);int dy=ifind(y);if(dx!=dy) f[dx]=dy;return ;
}int main()
{int n,m;int z=1;while(cin>>n>>m&&n!=-1){for(int i=0;i<maxn;i++) f[i]=i;memset(visited,false,sizeof(visited));memset(in,0,sizeof(in));bool flag=true;if(n==0&&m==0){printf("Case %d is a tree.\n",z++);continue;}while(n||m){visited[n]=true;visited[m]=true;in[m]++;imerge(n,m);scanf("%d%d",&n,&m);}int ans=0;for(int i=1;i<maxn;i++){if(visited[i]&&in[i]==0){ans++;}if(in[i]>=2) flag=false;}if(ans!=1) flag=false;if(flag==false) printf("Case %d is not a tree.\n",z++);else printf("Case %d is a tree.\n",z++);}return 0;
}

Is It A Tree?相关推荐

  1. 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  2. 102. Binary Tree Level Order Traversal

    题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...

  3. Python---哈夫曼树---Huffman Tree

    今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用. !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点. 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程 ...

  4. [Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  5. Code Forces Bear and Forgotten Tree 3 639B

    B. Bear and Forgotten Tree 3 time limit per test2 seconds memory limit per test256 megabytes inputst ...

  6. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

  7. datagrid底部显示水平滚动_DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强

    行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部 ...

  8. java easyui tree例子_EasyUI Tree的简单使用

    此前写过zTree插件的demo,没有记录下来,这次记录一下EasyUI的Tree. 实现效果:获取数据库表的数据,以树结构的形式展示出来. 树结构数据分为同步加载和异步加载,同步加载就是初始化加载时 ...

  9. windows用 tree命令查看目录文件夹结构

    windows用 tree命令查看目录文件夹结构 ## 查看帮助 tree --helptree --dirsfirst --filelimit 6 -h -t –dirsfirst 目录优先展示 – ...

  10. PCL :K-d tree 2 结构理解

    K-d tree 基础思路:(先看之前的KNN思想,更容易理解) 导语:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算.kd 树算法偏于复杂,本篇将先介绍以二叉树的形式来记录和索引空间 ...

最新文章

  1. Java虚拟机 —— 垃圾回收机制
  2. su组件在什么窗口_Su与Rhino互导注意事项
  3. android 运行jquery,Android端JQueryMobile使用教程(一)
  4. Win10+Ubuntu16.04双系统安装教程
  5. 搭建redis主从结构
  6. 在C#中将集合用作键
  7. VMware Horizon View 的内部版本号和版本 (2143853)
  8. Leetcode-105-从前序与中序遍历序列构造二叉树
  9. 操作系统原理(六)设备管理
  10. 电梯控制项目设计报告-第十周
  11. 罗永浩宣布春节后回归科技界;2021年年终奖人均水平为2.3万元;消息人士:字节跳动日均进账10.07亿 | EA周报...
  12. Java 使用百度翻译-通用翻译API
  13. 文件上传漏洞—简单利用(墨者学院靶场)
  14. Android强行进阶,自定义控件—LayoutManager,技术协会安卓部面试
  15. 文本检测之-craft检测算法
  16. Android四大组件Service之AIDL详解
  17. Android学习计划
  18. 刷新浏览器后不进行任何点击操作时,不播放声音 | 解决方案(VUE-Element)
  19. canvas实现聚光灯效果(js)
  20. 聊聊A股市场反映情况

热门文章

  1. HTML页面展示遇到问题
  2. 语义分割网络经典:unet
  3. 实战:基于深度学习和几何的3D边界框估计
  4. Pytorch 深度学习实战:视频自动打码
  5. 自动驾驶中的车道线跟踪技术
  6. 墙裂建议收藏,100道Python练手题目
  7. python10-宝可梦数据分析-平民最强宝可梦系列(从0-1数据分析实战)
  8. 下载、安装、配置 java jdk1.8
  9. golang 安装一个项目下的所有依赖
  10. Android Studio中新建和引用assets文件