HDU 1325 Is It A Tree?

值得苦练的100道Python经典练手题(全网最全,附详细答案,建议收藏) 这100道Python练习题涵盖了从基础语法到高级算法、从数据库操作到Web开发的各个方面,是备考数据库系统工程师的绝佳素材。建议按照章节顺序逐一练习,遇到难点可反复钻研,真正掌握每一道题背后的知识点。通过这些练习,不仅能提升Python编程能力,还能加深对数据库系统原理的理解,为考试和实际工作打下坚实基础。 阅读详情
题意

判断一系列的输入是否是一棵树

思路

比HDU 1272多判断一个入度,如果入度为0的点不止一个,就肯定不是一颗树

传送门

http://acm.hdu.edu.cn/showproblem.php?pid=1325

Code

#include <cstdio>
#include <cstring>
#include <iostream>

using namespace std;

class UnionFind {
private:
    int * fa;
    int size;
public: 
    UnionFind(int n) {
        size = n;
        fa = new int[n+1];
        Init();
    }

    ~UnionFind() {
        delete[] fa;
    }

    void Init() {
        for(int i = 1 ; i <= size ; i ++) {
            fa[i] = i;
        }
    }

    int Find(int x) {
        if(fa[x] != x) {
            fa[x] = Find(fa[x]);
        }
        return fa[x];
    }

    bool Union(int x,int y) {
        int fx = Find(x);
        int fy = Find(y);
        if(fx != fy) {
            fa[fx] = fy;
            return true;
        }
        else {
            return false;
        }
    }

    int GetCount() {
        int count = 0;
        for(int i = 1 ; i <= size ; i ++) {
            if(fa[i] == i) {
                count ++;
            }
        }
        return count;
    }
};

#define MAXN 1000005

bool vis[MAXN+1];
int indegree[MAXN+1];

int main() {
    int u,v;
    int cnt = 0;
    UnionFind uf(MAXN);
    memset(vis,0,sizeof(vis));
    bool haveCircle = false;
    int indegreeZeroNum = 0;

    while(~scanf("%d %d",&u,&v)) {
        if(u < 0 && v < 0) {
            break;
        }
        if(u == 0 && v == 0) {
            int tmpcnt = 0;
            for(int i = 1 ; i <= MAXN ; i++) {
                if(vis[i]) {
                    tmpcnt ++;
                    if(indegree[i] == 0) {
                        // printf("%d\n", i);
                        indegreeZeroNum ++;
                    }
                } 
            }
            // printf("%d\n", indegreeZeroNum);
            if(indegreeZeroNum == 1 && haveCircle == false && uf.GetCount() + tmpcnt == MAXN + 1) {
                printf("Case %d is a tree.\n",++cnt);
            }
            else {
                printf("Case %d is not a tree.\n",++cnt);
            }
            uf.Init();
            memset(vis,0,sizeof(vis));
            memset(indegree,0,sizeof(indegree));
            indegreeZeroNum = 0;
            haveCircle = false;
        }
        else {
            vis[u] = true;
            vis[v] = true;
            indegree[v] ++;
            if(false == uf.Union(u,v)) {
                haveCircle = true;
            }
        }
    }
    return 0;
}
基于Jeecgboot3.9.0的flowable7.2.0流程增加一个OA请假单功能例子(二) 阅读详情

相关推荐

拆解一个800G光模块:手把手带你认识里面的MT插芯和光纤阵列(FA)

本文详细拆解了800G光模块中的关键组件MT插芯和光纤阵列(FA),揭示了并行光学技术如何实现高速数据传输。通过显微镜下的精密观察,展示了MT插芯的高精度构造和光纤阵列的连接奥秘,同时解析了高精度研磨工艺对光信号传输的重要性。这些微型组件是高速收发模块实现800Gbps带宽的核心技术。

weixin_30839881的博客 1541

hdu1325 Is It A Tree?并查集

hdu1325和另外一道hdu1272.题意基本一致。但是由于数据不同,所以解法也不尽相同。hdu1272可以不使用并查集水过,但这道就必须利用并查集了,用来判断是否是多个树。此外还要判断是否为有环,也就是入度不能大于1.

果冻虾仁 2776

Jaspersoft Studio 6.20.0 免注册安装指南(附下载链接)

本文提供了Jaspersoft Studio 6.20.0社区版的免注册安装详细指南。文章介绍了绕过官网注册获取安装包的多种可靠途径,并逐步详解了从启动安装器到首次运行的全过程,帮助用户快速完成安装与基础配置,高效开启报表设计工作。

mars5的博客 1684

【并查集】hdu 1325 Is It A Tree? 或 poj 1308 Is It A Tree?

/* THE PROGRAM IS MADE BY PYY */ /*----------------------------------------------------------------------------// Copyright (c) 2012 panyanyany All rights reserved. URL : http://acm.hdu.edu

panyanyany(飞雨幻沙) 766

Python xlwings报错解决:从‘NoneType‘到完美运行WPS表格的完整指南

本文深入解析了使用Python xlwings库自动化WPS表格时遇到的经典'NoneType'报错(AttributeError: 'NoneType' object has no attribute 'apps')的根源与解决方案。核心在于pywin32版本与WPS的兼容性问题,文章提供了从版本降级、依赖管理到构建健壮自动化环境的完整实战指南,帮助开发者彻底解决兼容性难题,实现稳定运行。

n4o5p6q7r的博客 302

手把手教你用TI MOSFET搭建0-100mA恒流源电路(附避坑指南)

本文详细介绍了如何使用TI MOSFET SI1204D搭建0-100mA恒流源电路,包括基础原理、电路设计、PCB布局和热管理技巧。通过分步指导和避坑指南,帮助工程师实现高精度、低成本的电流控制方案,适用于LED驱动、传感器激励等多种应用场景。

weixin_29310631的博客 482

HDU-1325 Is It A Tree?

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1325 思路:DFS/并查集 对比AC的代码交了40多遍,心态搞炸,结果发现是输入u<0,v<0时退出而不是==-1,ヽ(`Д´)ノ︵ ┻━┻ ┻━┻ 思路一:DFS,首先判断是否只有一个根节点,再DFS来判断是否有环路,以及有多个块 思路二:并查集,1.判断环路Find(u)==F...

随风而行的博客 286

auboi5 + d435i 使用easy handeye进行标定时,遇到相关问题记录。

解决办法:在easy_handeye默认的 calibrate.launch 文件中move group 的默认值为 "manipulator",但针对每个人的机械臂,这个值需要更改。以aubo_i5为例,需要将其改为"manipulator_i5",或者自己编写launch文件时,传入参数move group的值,便能顺利解决问题!easy_handeye_calibration_server 进程出现崩溃。

weixin_61025092的博客 958

HDU 1325 Is It A Tree? 并查集

HDU 1325 Is It A Tree? A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following properties. There is exactly one node, called the ro

DaNIelLAk的博客 339

辐射制冷无规散射结构非球形散射体的结构优化与设计准则

本文针对辐射制冷材料中非球形散射体的光散射特性开展研究,提出了一种基于体积散射截面和不对称因子的综合评价方法。通过建立简化模型分析球体、圆柱体、长方体等六种几何形状在太阳波段的散射性能,发现金字塔形和圆锥形具有更强的后向散射能力。研究创新性地提出"反射因子SR=S(1-g)"这一评价参数,该参数与宏观反射率高度相关,为非球形散射体的优化设计提供了定量依据。仿真结果表明,合理选择散射体形状可显著提升辐射制冷材料的太阳反射率,为实现高效被动制冷提供了新的结构设计思路。

huanghm88的专栏 77

selenium绕过检测,规避检测

现在不少大网站有对selenium采取了监测机制。比如正常情况下我们用浏览器访问淘宝等网站的 window.navigator.webdriver的值为 undefined或者为false。而使用selenium访问则该值为true。那么如何解决这个问题呢?我们正常浏览器登录查看,window.navigator.webdriver的值为false我们通过selenium打开的网页,测试,可见window.navigator.webdriver的值为true。

景天科技苑 1万+

Is It A Tree?(HDU 1325)树型并查集

#include <bits/stdc++.h> using namespace std; const int N = 1005; int table[N]; int findt(int x){ if(table[x]==-1){ return x; } table[x]=findt(table[x]); return table[x]; } void merge(int a, int b){ int ta=findt(a); int tb=findt(b); if(t

征服所有不服的博客 264

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hdu 1325 Is It A Tree?

http://acm.split.hdu.edu.cn/showproblem.php?pid=1325 “英雄互娱”欢迎ACM选手加盟~ Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su

bushadid的博客 306

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Hdu1325 Is It A Tree?

Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32125Accepted Submission(s): 7336 Problem Description A ...

那一夜见红的博客 248

hdu1325 Is It A Tree?

题意:有向图判断是不是一棵树 分析:你管他有向图还是无向图呢,什么吐跟并查集有关系吗。甭管他,分析完提后裸并查集. #include <iostream> #include<bits/stdc++.h> #include<string.h> #include<math.h> #define N 11000 using names...

mlm5678的博客 228

hdu1325Is It A Tree?

并查集的运用,不过有一些变化 首先必须弄清楚

cgjiayou 454

Is It A Tree?(hdu1325)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1325 Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29221Accepted Submi...

177

HDU - 1325 Is It A Tree?(并查集)

Is It A Tree? HDU 1325 方法一 与“小希的迷宫”不同的是,这里多了个入度的概念(树的概念,只有一个入度为0的根)。 参考样例: 1 2 1 3 2 4 2 5 3 6 7 3 0 0 所以变动: 把判断输入的两个a, b是否在同一集合,变成统计被指向的结点的入度的个数:in[b]++ 其他不变。 最后要判断: 1、是否连通图 2、是否入度为0的点只有一个 我的代码 #include<bits/stdc++.h> using namespace std; #define l

Chancy_Lu的博客 240

并查集 HDU1325-Is It A Tree?

并查集 HDU1325-Is It A Tree?

P_rogrammer的专栏 511

hdu 1325(Is It A Tree?)

Is It A Tree? (并查集) Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 21685    Accepted Submission(s): 4886 Problem Descr

渣渣眼里没有水题 389

HDU-1325 Is It A Tree? 树的知识和集合

http://acm.hdu.edu.cn/showproblem.php?pid=1325 Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33818Accepted Submi...

ZZULI_星.夜 1402

hdu_1325 Is It A Tree?

Problem Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following

沉醉不知归路的博客 263

HDU 1325 Is it a tree ?

Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following prop

Kelisiya 352

hdu 1325:Is It A Tree

并查集

weixin_46266058的博客 320

【判断是否为树】HDU 1325 Is It A Tree?

HDU 1325 Is It A Tree? 题意:给定多组有向边的起点和终点(结点的标号不一定是连续的,也不一定是从1开始,是随机的),判断这些边能不能组成一颗树。 给定条件:(1)只有一个节点是根节点,并且除了根节点之外的所有的节点只有一条边指向它。(2) #include <iostream> #include <algorithm> #include <cst...

L_X_ 260

hdu-1325 Is It A Tree?

http://acm.hdu.edu.cn/showproblem.php?pid=1325 跟小希的迷宫那一题题意差不多,只不过那个是无向图,这个是有向图。那么区别在于这个题在输入边的时候不能指向自身,并且有父亲就不可以接另外的父亲了。 其他的都是一样。 #include #include #define N 100001 int father[N],mark[N],flag,edges;

有一种力量叫乐观 957
上一篇: HDU 1272 小希的迷宫 并查集
下一篇: HDU 1856 More is better
_NMfloat_
博客等级 码龄12年 7粉丝 315原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值