Is It A Tree?
这题之前在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?相关推荐
- 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 ...
- 102. Binary Tree Level Order Traversal
题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...
- Python---哈夫曼树---Huffman Tree
今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用. !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点. 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程 ...
- [Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- 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 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- datagrid底部显示水平滚动_DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强
行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部 ...
- java easyui tree例子_EasyUI Tree的简单使用
此前写过zTree插件的demo,没有记录下来,这次记录一下EasyUI的Tree. 实现效果:获取数据库表的数据,以树结构的形式展示出来. 树结构数据分为同步加载和异步加载,同步加载就是初始化加载时 ...
- windows用 tree命令查看目录文件夹结构
windows用 tree命令查看目录文件夹结构 ## 查看帮助 tree --helptree --dirsfirst --filelimit 6 -h -t –dirsfirst 目录优先展示 – ...
- PCL :K-d tree 2 结构理解
K-d tree 基础思路:(先看之前的KNN思想,更容易理解) 导语:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算.kd 树算法偏于复杂,本篇将先介绍以二叉树的形式来记录和索引空间 ...
最新文章
- Java虚拟机 —— 垃圾回收机制
- su组件在什么窗口_Su与Rhino互导注意事项
- android 运行jquery,Android端JQueryMobile使用教程(一)
- Win10+Ubuntu16.04双系统安装教程
- 搭建redis主从结构
- 在C#中将集合用作键
- VMware Horizon View 的内部版本号和版本 (2143853)
- Leetcode-105-从前序与中序遍历序列构造二叉树
- 操作系统原理(六)设备管理
- 电梯控制项目设计报告-第十周
- 罗永浩宣布春节后回归科技界;2021年年终奖人均水平为2.3万元;消息人士:字节跳动日均进账10.07亿 | EA周报...
- Java 使用百度翻译-通用翻译API
- 文件上传漏洞—简单利用(墨者学院靶场)
- Android强行进阶,自定义控件—LayoutManager,技术协会安卓部面试
- 文本检测之-craft检测算法
- Android四大组件Service之AIDL详解
- Android学习计划
- 刷新浏览器后不进行任何点击操作时,不播放声音 | 解决方案(VUE-Element)
- canvas实现聚光灯效果(js)
- 聊聊A股市场反映情况