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

10-142 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格 分数 10全屏浏览题目切换布局作者 lhm单位 河北农业大学本题目要求编写SQL语句,查询厂商D生产的PC和便携式电脑的平均价格。 阅读详情

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 ll long long
const ll maxn = 2e5+5;
ll f[maxn], vis[maxn], in[maxn];

ll findFather(ll x){
    if(x == f[x]) return x;
    else return f[x] = findFather(f[x]);
}

void init(){
    for(ll i = 1; i <= maxn; i++){
        f[i] = i, vis[i] = 0, in[i] = 0;
    }
}

int main(){
    ll t = 0;
    ll a, b, fa, fb, ff, flag, cnt;
    while(1){
        t++;
        ff = 0, flag = 0, cnt = 0;
        init();
        while(cin >> a >> b){
            ff++;
            if(a < 0 && b < 0) return 0;
            if(a == 0 && b == 0) { break; }
            vis[a] = 1, vis[b] = 1;
            fa = findFather(a);
            fb = findFather(b);
            in[b]++;
            if(fa == fb){flag = 1; }
            else f[fa] = fb;
        }
        if(ff == 1){cout << "Case " << t << " is a tree." << endl;  }
        else if(flag == 1){cout << "Case " <<  t << " is not a tree." << endl; }
        else {
            ll root = 0;flag = 1;
            for(ll i = 1; i <= maxn; i++){
                if(vis[i] && in[i] == 0) root++;
                if(vis[i] && f[i] == i) cnt++;
            }
            if(root > 1) flag = 0;
            if(cnt > 1) flag = 0;
            if(flag){cout << "Case " << t << " is a tree." << endl;  }
            else {cout << "Case " << t << " is not a tree." << endl;}
        }
    }

}

/*
6 8 5 3 5 2 6 4 5 6 0 0
8 1 7 3 6 2 8 9 7 5 7 4 7 8 7 6 0 0
3 8 6 8 6 4 5 3 5 6 5 2 0 0
-1 -1
*/
方法二

判断是不是一棵树:

1、连通图

2、点数 = 边数 + 1

这个做法与“[小希的迷宫]”(https://blog.youkuaiyun.com/Chancy_Lu/article/details/116756322)只有输出不同。

excel 如何自动调整行间距 vba EXCEL是一个非常使用的软件,虽然我们平时仅使用他做一些报表,仅此而已;我在工作中,由于很懒,不愿意做考试重复的工作,就想着使用vba的宏来完成重复的工作,这样就能省出一部分的时间来了。本人不喜欢在博客里面写以下教程类的东西,我的理念是将工作中的痛点的解决办法分享出来,以解决问题为主。 阅读详情

相关推荐

ThinkBook 16p 2024 BIOS降压定频实战:从解锁CFG Lock到AC Loadline调优

高性能笔记本在满载时频繁撞上温度墙,通常源于固件层默认电压冗余过大,而系统级降压工具又受限于CFG Lock锁定。要根治问题,需要从BIOS固件层面理解电压管理机制——AC/DC Loadline参数控制着CPU在不同负载下的电压请求,通过修改这些负载线值可以安全降低电压,解锁CFG Lock后还能让XTU、ThrottleStop等软件调参工具恢复可用。这种BIOS级调优在工程实践中广泛用于改善散热、稳定频率、压降风扇噪音,尤其适用于联想ThinkBook 16p 2024与拯救者Y9000P等采用HX平

weixin_32496547的博客 388

hdu 1325:Is It A Tree

并查集

weixin_46266058的博客 320

西门子S7-1200模拟量的使用

模块类型核心参数输入信号处理输出信号配置转换原理数值范围TIA Portal配置编程要点 转换公式: 输出模拟量: 五、校准与线性化 硬件校准非线性补偿抗干扰措施数字滤波温度控制压力监控流量调节信号异常精度不足实践操作参考文档项目案例借鉴博客

weixin_51020122的博客 4771

hdu1325(并查集无环连通树)

题意:判断是不是一棵树 条件:无环,一个跟节点,看别人的代码要只有一个入度为0的结点,不存在入度大于1的结点 和hdu1272代码基本一样,只是这道是有向图,代码区别在了 if(l!=r&&l==y)      pre[l]=r; 无向图的话判断父节点不是一个点就好了,但是树的话一个点只能赋值一次父节点,比如1 2 1 2就错了,至于入度问题~我没理解诶。。

远方传来风铃 745

IDEA 2023.2.3全平台安装指南:Mac/Windows/Linux一键激活(附最新补丁获取)

本文提供IDEA 2023.2.3在Mac、Windows和Linux三大平台的一键安装与激活指南,包含最新补丁获取方法。详细讲解各系统安装流程、性能调优设置及高效开发技巧,帮助开发者快速配置并提升工作效率。

weixin_28832121的博客 396

Android 15.0 app进程保活白名单功能实现

在15.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 638

HDU 1325(并查集判断一个图是否是一棵树)

题意:每组数据都以0 0结束,-1 -1结束程序。 每组数据中的每两个数字为一小组,前一个数字代表的结点指向后一个数字代表的结点。   #include #include using namespace std; int father[100010]; int find_father(int x) { while (father[x] != x)

ACM Dream 998

基于转录逆转的药物重定向 GPS 模型

GPS是一个基于分子结构预测基因表达扰动的开源平台,由三个模块组成:RCL(在LINCS扰动数据上训练抗噪MLP)、GPS4Drugs(预测新化合物的基因表达谱并进行逆转评分)、MolSearch(基于MCTS的分子优化)。平台使用Morgan指纹和Gene Ontology注释作为特征输入,将基因表达扰动离散为三分类标签。训练数据来自LINCS Phase I的18,746个化合物和978个landmark基因,支持四细胞系独立训练,可用于药物重定向与化合物筛选。

听雨草堂 83

HDU 1325 Is It A Tree?(有向图!!!)

题解: 跟小希的迷宫差不多,但是,但是!这是个有向图!有向图!有向图!重要的事情说三遍,md把他当无向图做,错了一早上,然后是输入两个负数就跳出,不是两个-1。然后怎么做呢?只要加个判断就好了,判断入度为1的点是否有n-1个(n是总共输入的点)。#include<stdio.h> #include<string.h> #include<algorithm> using namespace

Start_to_crazy的博客 332

VTK GPU 加速渲染技术

/ 创建颜色工具// 创建立方体数据// 创建OpenGL映射器(注意使用vtkOpenGLPolyDataMapper而不是常规的vtkPolyDataMapper)// 启用VBO(顶点缓冲对象)// 声明几何体是静态的以获得最佳性能// 创建actor// 创建渲染器、渲染窗口和交互器renderWindow->SetWindowName("VTK自定义着色器示例");// 添加actor到渲染器。

深之JohnChen的专栏 1240

Mac电脑安装burp suite2024版本记录

下载最新版本burpsuitloader-XXX-all.jar,改名为burpsuitloader.jar。目录下,修改vmoptions.txt文件,新增以下内容,如果keygen不是这个名称的话,需要修改。,点击license左侧的copy复制它,然后手动从启动台启动burpsuite。,复制如下命令到终端即可(要加双引号,不然目录中空格会导致命令截断)再复制激活响应信息到burpsuite中即可激活。后续运行burp直接从启动台运行即可。将如下框的信息复制到激活器中。输入后下一步,点击手动激活。

墨痕诉清风的博客 901

hdu1325(Is it a tree)

#include #include #include #include const int maxn = 110000; const int maxm = 110000; using namespace std; typedef struct node { int to; int next; }node; node edge[maxm]; int head[maxn];

Achiberx 1094

DSI3接口介绍

DSI3(distributed system interface)分布式系统接口,是一种强大且通用的总线协议,旨在将多个遥感器和执行器互连到中央控制模块。在单总线中集成了电压信号、电流信号还有电源,甚至引用了3位状态机概念(反向数据),从逻辑0/1扩展到了0/1/2。

Airer_00的博客 4311

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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

题目大意:给你两个节点,前者指向后者(可以认为前者是后者的父节点),然后让你判断是否是一棵树。 解题思路:先说说这道题和小希的迷宫(HDU1272)那道题的区别,前者给出的两个点是有方向的,而后者是没有的,这就是唯一的区别。再者这道题其实就是让你判断所有的点最后所形成的图是否是一棵树。做这道题时错误了很多遍,细想之,主要是开始思路不好,很容易乱,理清思路让代码变得清晰起来就好了。判断一个图是否为

Ash.的博客 525

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

hdu 1325 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): 24813    Accepted Submission(s): 5674 Problem Description A tree is a

MR CODER 266

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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 follow

ww的博客 234

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 followin...

LightOn 319

hdu1325 Is It A Tree?(有向图并查集)

本题我相信A不过的好多都是做过小希的迷宫= =,且听我慢慢道来T T 刚开始看,这题基本一样呀,改下输出,果断WA。。。 于是看到是有向图,然后把Union加了个顺序,继续WA。。。 后来看了题解,而且发现题中有言:Every node except the root has exactly one edge pointing to it.(除了根节点入度都为1) 这点上一题没有啊!所以不

Iguodala的博客 598

【HDU1325】Is It A Tree?(并查集基础题)

有以下坑点: 1.结束输入不一定-1,题目中的叙述只是说所有权值都为正值。 2.是否构成一棵树不能只判断是否只有一个根节点,没有环路,而且还需要判断每个节点的入度一定是1,不然就不是一棵树。 (无环路也可用树的性质:结点数 = 边树 + 1 来取代) 1 #include <iostream> 2 #include <cstdlib> ...

banxuanliu0005的博客 147

hdu1325Is It A Tree?(并查集)

H - Is It A Tree? Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description A tree is a well-known data structure that is either empty (n

昨日明眸 2025

【HDU】-1325-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): 21760    Accepted Submission(s): 4911 Problem Description A tree is a

Bear1998的博客 409

hdu1325 Is It A Tree?(并查集)

根据树的特点: 要注意的问题就是:0 0 是棵树 用结构体,分别记录标记、入度和根 然后就分别判断: 不要产生环的情况 不要入度大于1的情况 不要多根的情况 #include const int max_num = 100000 + 10; typedef struct { int num,root,conn; }Node; Node node[max_num]; void

Dosth_Magic 699

hdu 1325 Is It A Tree?(并查集)

因为题目中一句英语没看懂,白白浪费了半个多小时的时间。。。。不说了,说多了都是泪。 题目中每一个节点只能有一个进入点。和那个小希的迷宫很像。 #include #define N 1000000 int a[2*N]; struct node { int x; int ans; int count; }mark[N]; void value() { int i; for(i=0;i<

zizaimengzhongyue的专栏 451

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

题意:给你一些有向边,问是否能构成一棵树。。 思路:1、把树的边当成是无向边,则所有的点属于同一个集合,使用并查集 2、所有点至多只能有一个入度。 3、根节点只能有一个 4、特判0,0, #include #include #include #include #include #include using namespace std; const int N = 1009;

binwin20 504

Is It A Tree?(HDU 1325)---并查集+树知识

题目链接 题目描述 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 root, to whi.

weixin_43960284的博客 357
上一篇: HDU - 1272 小希的迷宫(并查集)
下一篇: HDU - 1102 Constructing Roads(最小生成树)
tsunaa
博客等级 码龄7年 67粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值