首页 > 其他分享 >7999: 路径图 并查集

7999: 路径图 并查集

时间:2023-08-10 21:03:05浏览次数:41  
标签:路径 int vi 查集 条边 7999 find

描述

 

给定一个n个顶点(1~n编号),m条边的简单无向图,判断是否是一个路径图。

路径图要求:必须存在一个顶点序列v1, v2, ..., vn,它是1~n的一个排列,且对于任何1<=i<=n-1,vi和vi+1之间有边相连,而对于任何1<=i, j<=n(其中|i-j|>=2),vi和vj之间没有边相连。

 

输入

 

第一行为两个正整数n和m(2<=n<=2*105, 0<=m<=2*105)。

接下来有m行,每行两个整数u和v(1<= u, v<= n),表示u和v之间有一条边。

 

输出

 

如果图是“路径图”输出Yes,否则输出No

 

路径图:可以理解为m条边刚好构成了一颗树,n个点之间连接了n-1条边,有回路不行,且每个点都要有边相连

通过并查集如果find(x)==find(y)那么就是有回路,通过并查集后的f[i]==i来统计父节点的个数,如果大于1那么也不行

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
int f[N];
int find(int x)
{
    if(f[x]!=x)f[x] = find(f[x]);
    return f[x];
}
void merge(int x,int y)
{
    int fx = find(x);
    int fy = find(y);
    f[fy] = fx;
}
int main()
{
    int n,m,flag = 1;
    cin >> n >> m;
    for(int i=1;i<=n;i++)f[i] = i;
    for(int i=1;i<=m;i++)
    {
        int x,y; scanf("%d %d",&x,&y);
        if(find(x)!=find(y))merge(x,y);
        else flag = 0;
    }
    int sum = 0;
    for(int i=1;i<=n;i++)
        if(f[i]==i)sum++;
    if(sum>1 || !flag)cout << "No";
    else cout << "Yes";
    return 0;
}

 

标签:路径,int,vi,查集,条边,7999,find
From: https://www.cnblogs.com/jyssh/p/17621474.html

相关文章

  • 力扣---1289. 下降路径最小和 II
    给你一个 nxn 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。非零偏移下降路径 定义为:从 grid 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。 示例1:输入:grid=[[1,2,3],[4,5,6],[7,8,9]]输出:13解释:所有非零偏......
  • 这些命令可以直接在Windows资源管理器的地址栏中输入,或通过运行对话框(Win + R)中输入运
    Windowsshell命令和路径:shell:commonstartup:该命令用于打开"公共启动"文件夹,这是一个用于存放所有计算机用户启动项的文件夹。在这个文件夹中放置的程序或快捷方式会在每个用户登录时自动执行。shell:sendto:这个命令用于打开"发送到"菜单的文件夹,它包含了在右键菜单中"发送到"......
  • 两台物理机挂载共享磁盘,重新扫描识别磁盘,多路径,映射
    一,添加新物理硬盘。 二,SSH登陆服务器。执行:lsblk命令查看磁盘,并没有新加的硬盘fdisk-l查看硬盘及分区状态查看主机总线号,命令:ls/sys/class/scsi_host/重新扫描SCSI总线,以添加新设备:echo"---">/sys/class/scsi_host/host0/scanecho"---">/sys/class/scsi_host/host1......
  • 点云分割学习路径
    1.传统点云分割点云分割是根据空间、几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征。点云的有效分割是许多应用的前提,例如在三维重建领域,需要对场景内的物体首先进行分类处理,然后才能进行后期的识别和重建。传统的点云分割主要依赖聚类算法和基于随机采样......
  • 单源最短路径算法
    单源最短路径算法1.原理单源最短路径算法是一种用于在有向图或无向图中找到从指定源节点到其他所有节点的最短路径的算法。常用的单源最短路径算法有Dijkstra算法、Floyd-Warshall算法和Bellman-Ford算法。2.Dijkstra算法Dijkstra算法是最常用的单源最短路径算法之一,它的基......
  • 1) 最短路径 思路
    一、名词解释临接矩阵:Dijkstra算法:G: graphV: vertexE:edge 二、生成临接矩阵   a->b(1)b->c(5)b->d(2)d->c(2) ......
  • asp.net下载文件自选路径
    1、asp.net中怎么弹出类似于选择文件夹的窗口?2、asp.net下载文件自选路径3、asp.net上传文件到服务器指定文件夹问题4、asp.net选择文件夹的控件5、OFD版式文件如何打开6、aspx浏览器下载提示选择文件夹asp.net中怎么弹出类似于选择文件夹的窗口?我解释一下,把file控件......
  • k8s---使用ingress配置域名转发时的traefik路径规则详解
    ingress中traefik的使用方式如下:apiVersion:extensions/v1beta1kind:Ingressmetadata:name:spark-client-testnamespace:defaultannotations:kubernetes.io/ingress.class:traefiktraefik.frontend.rule.type:PathPrefixspec:rules:-host:......
  • Hybrid App 技术路径带动性能的提升
    说到HybridApp(混合应用)大家都不陌生,因为这种开发模式大行其道发展的这些年取代了很多原生和Web应用,为什么大家对这种「Native+HTML5」的开发模式额外偏爱呢?因为一方面在一定程度上兼顾了原生应用的优质体验,另一方面又兼顾到了HTML5灵活的开发模式。这种模式的核心就在......
  • Visual Studio 修改NuGet 包路径
    目的:通过NuGet安装包时,NuGet先将包下载至一个统一的目录,默认路径是:C:\Users\{用户名}\.nuget\packages。现在需要将其迁移到目录E:\nuget\packages步骤1、在C:\ProgramFiles(x86)\NuGet\Config目录中找到Microsoft.VisualStudio.Offline.config。在文件末尾添加一......