POJ 1308 Is It A Tree?和HDU 1272 小希的迷宫
POJ题目网址:http://poj.org/problem?id=1308
HDU题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1272
并查集的运用,如果想要形成一棵树,那么我们应该只能有一个根,并查集联合次数为节点数-1。
- //Asimple
- //#include <bits/stdc++.h>
- #include <iostream>
- #include <sstream>
- #include <algorithm>
- #include <cstring>
- #include <cstdio>
- #include <vector>
- #include <cctype>
- #include <cstdlib>
- #include <stack>
- #include <cmath>
- #include <set>
- #include <map>
- #include <string>
- #include <queue>
- #include <limits.h>
- #include <time.h>
- #define INF 0xfffffff
- #define mod 10007
- #define swap(a,b,t) t = a, a = b, b = t
- #define CLS(a, v) memset(a, v, sizeof(a))
- #define debug(a) cout << #a << " = " << a <<endl
- #define abs(x) x<0?-x:x
- using namespace std;
- typedef long long ll;
- const int maxn = ;
- int fa[maxn];
- //int re[maxn];
- int n, m, T, x, y, num, len;
- set<int> s;
- bool f;
- void init() {
- for(int i=; i<maxn; i++) fa[i] = i;
- f = false;
- len = ;
- s.clear();
- }
- int find(int x) {
- return fa[x]==x?x:fa[x]=find(fa[x]);
- }
- void make_set(int x, int y) {
- if( x==y ) f = true;
- x = find(x);
- y = find(y);
- if( x!=y ){
- fa[x] = y;
- len ++;
- } else f = true;
- }
- void solve() {
- }
- void input() {
- int cas = ;
- while( true ) {
- init();
- cin >> x >> y;
- if( x == && y == ) {
- // cout << "Case "<< cas++ <<" ";
- // puts("is a tree.");
- puts("Yes");
- continue;
- }
- if( x==- && y==- ) break;
- s.insert(x);
- s.insert(y);
- make_set(x, y);
- while( cin >> x >> y ) {
- if( x== && y == ) break;
- s.insert(x);
- s.insert(y);
- make_set(x, y);
- }
- // cout << "Case "<< cas++ <<" ";
- if( len+ == s.size() && !f ) puts("Yes");
- else puts("No");
- }
- }
- int main() {
- input();
- return ;
- }
POJ 1308 Is It A Tree?和HDU 1272 小希的迷宫的更多相关文章
- HDU 1272小希的迷宫(裸并查集,要判断是否构成环,是否是连通图)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) ...
- hdu 1272 小希的迷宫(并查集+最小生成树+队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) ...
- hdu 1272 小希的迷宫 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 第二条并查集,和畅通工程的解法类似.判断小希的迷宫不符合条件,即有回路.我的做法是,在合并两个集 ...
- <hdu - 1272> 小希的迷宫 并查集问题 (注意特殊情况)
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 Problem Description: 上次Gardon的迷宫城堡小希玩了很久(见Probl ...
- HDU - 1272 小希的迷宫 【并查集】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1272 思路 只需要判断 这张图 无环 并且只有一个连通块 就可以了 要注意 如果 只输入 0 0 那给 ...
- HDU 1272 小希的迷宫 并查集
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu 1272 小希的迷宫
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU 1272 小希的迷宫(并查集)
题解: 首先,init,find,union操作都是模版,多敲几遍,在记记,就没问题了. 然后,本题就是多了一个flag数组,记录数据是否出现过,最后记录最小,和最大,遍历一般他们的父亲,只有一个就是 ...
- HDU 1272 小希的迷宫 (水题)
题意: 其实就是让你判断一个图是否为树,要求不能有孤立的点(没有这中情况),且只能有1个连通图,且边数+1=点数,且每个点都有边(不可能只有1个点出现). 思路: 有可能出现连续的4个0,也就是有测试 ...
随机推荐
- linux中cmake语法的学习
在linux 下进行开发很多人选择编写makefile 文件进行项目环境搭建,而makefile 文件依赖关系复杂,工作量很大,搞的人头很大.常常,写代码,效率才是王道.这里还有自动化的项目构建工具C ...
- PHP适配器模式
[IDatabase.php] <?php /** * 适配器模式 * 可以将不同的函数接口封装成统一的API * 应用举例1:数据库操作 mysql/mysqli/pdo * 应用举例2:缓存 ...
- Swagger Editor Linux安装(全新环境)
查看内核版本 cat /proc/version cat /etc/redhat-release 查看系统是32位还是64位方法总结getconf LONG_BIT 安装相关工具 yum instal ...
- [LeetCode] 422. Valid Word Square_Easy
Given a sequence of words, check whether it forms a valid word square. A sequence of words forms a v ...
- 让运行着的ASP.NET Web程序重新启动
在运行中的Web程序,会随时的监测这web.config文件的变化,只要web.config文件有变动,那么Application就会重新启动.所以,在一个工具类中我们可以封装一个方法,该方法用来重新 ...
- 从零开始一起学习SLAM | 为什么要用齐次坐标?
在涉及到计算机视觉的几何问题中,我们经常看到齐次坐标这个术语.本文介绍一下究竟为什么要用齐次坐标?使用齐次坐标到底有什么好处? 什么是齐次坐标?简单的说:齐次坐标就是在原有坐标上加上一个维度: 使用齐 ...
- [转帖]unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(主要讲区别)
觉得这个讲的挺好的,就转过来了:) 太抽象的理论总是让人眼花缭乱,所以我这里以例证为主. 1,测试OnTriggerEnter和OnCollisionEnter的区别 测试:如果两个物体A,B 两者都 ...
- 前端 json 导出 excel
参考:https://blog.csdn.net/abel_yang/article/details/78684786 在github上有大神提供现成的插件,非常感谢 https://cuikangj ...
- 安装redis脚本
#!/bin/bash#Function: Install redis#Author: DengYong#Date: 20151126 cd /root/packagewget http://down ...
- caffe深度学习进行迭代的时候loss曲线开始震荡原因
1:训练的batch_size太小 1. 当数据量足够大的时候可以适当的减小batch_size,由于数据量太大,内存不够.但盲目减少会导致无法收敛,batch_size=1时为在线学习. ...