#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std; int pre[];
struct e{
int a, b;
};
e s1[];
e s2[]; int find(int x)
{
while (x != pre[x])
x = pre[x];
return x;
} int cmp(e a, e b){
if (a.a == b.a) return a.b>b.b;
else return a.a>b.a;
} void init(int n)
{
for (int i = ; i <= n; i++)
pre[i] = i;
} int main()
{
int t, cas = ;;
scanf("%d", &t);
while (t--)
{
for (int i = ; i<; i++)
{
s1[i].a = ; s1[i].b = ;
s2[i].a = ; s2[i].b = ;//最开始每个都是独立的,默认为链
}
bool flag = false;
int n1, m1, n2, m2; scanf("%d%d", &n1, &m1);
init(n1);
for (int i = ; i<m1; i++)
{
int a, b;
scanf("%d%d", &a, &b);
int dx = find(a);
int dy = find(b);
if (dx != dy)
{
pre[dx] = dy;
s1[dy].a += s1[dx].a;
s1[dx].a = ;//把拉手的孩子数量加起来,下同
}
else s1[dy].b = ;//否则在dy这个位置成环
} scanf("%d%d", &n2, &m2);
init(n2);
for (int i = ; i<m2; i++)
{
int a, b;
scanf("%d%d", &a, &b);
int dx = find(a);
int dy = find(b);
if (dx != dy)
{
pre[dx] = dy;
s2[dy].a += s2[dx].a;
s2[dx].a = ;
}
else s2[dy].b = ;
}
if (n1 == n2){ sort(s1 + , s1 + n1 + , cmp);
sort(s2 + , s2 + n2 + , cmp);//排序,若孩子的数量相同则对是否是环进行排序,这里要注意 for (int i = ; i<n1; i++)
if (s1[i].a != s2[i].a || s1[i].b != s2[i].b) {//判断数量,状态
flag = true;
break;
}
}
if (n1 != n2) flag = true; if (flag)
printf("Case #%d: NO\n", cas++);
else
printf("Case #%d: YES\n", cas++);
}
return ;
}

hdu3926 Hand in Hand 同构图的更多相关文章

  1. hdu 3926 Hand in Hand 同构图

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3926 In order to get rid of Conan, Kaitou KID disguis ...

  2. 2019牛客暑期多校训练营(第六场)E 构造、原图是补图的同构图

    https://ac.nowcoder.com/acm/contest/886#question 题意  问是否存在某个n个点的无向图G是其补图H的同构图,若存在输出G的邻接矩阵以及H关于G的映射. ...

  3. 同构图+思维构造——牛客多校第六场E

    考的其实是同构图的性质: 1.同构图的顶点数,边数相等 2.同构图通过点的映射后邻接矩阵相同 这篇博客讲的很好https://www.jianshu.com/p/c33b5d1b4cd9 本题还需要一 ...

  4. hdu3926(判断两个图是否相似,模版)

    题意:给你2个图,最大度为2.问两个图是否相似. 思路:图中有环.有链,判断环的个数以及每个环组成的人数,还有链的个数以及每个链组成的人数 是否相等即可. 如果形成了环,那么每形成一个环,结点数就会多 ...

  5. hdu3926 Hand in Hand 判断同构

    因为每个人小朋友只有两只手,所以每个点最多只有2度.图有可能是环.链,以及环和链构成的复杂图. 如何判断两幅图是否相似呢?判断相似是判断两幅图的圈的数量,以及构成圈的点数是否相同.还有判断链的数目和构 ...

  6. 【转】并查集&MST题集

    转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU]1213 How Many Tables 基础并查集★1272 小希的迷宫 基 ...

  7. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  8. hdu 3926 hands in hands

    https://vjudge.net/problem/HDU-3926 题意:有n个小朋友,他们之间手拉手,但是一只手只能拉一只手或者不拉,现在给出两个图,表示拉手关系,问这两个图是否同构.思路:一开 ...

  9. 【HDOJ图论题集】【转】

    =============================以下是最小生成树+并查集====================================== [HDU] How Many Table ...

随机推荐

  1. SVN——库合并

    从下午開始做库的合并.刚開始一直将路径弄错.后来纠结至死的时候,finally  and finally,succeed~ 库合并是这样子的: 如今,我要把项目1这个库合并到部门1的项目1目录中,为了 ...

  2. Yarn调度器负载模拟器——Yarn Scheduler Load Simulator (SLS)

    一.概述: Yarn调度器有很多实现,如Fifo, Capacity和Fair schedulers等.与其同一时候,正在进行一些优化措施来提高调度器在不同负载和工作场景下的性能.每一个调度器都有自己 ...

  3. UICollectionViewController xcode6.1 自定义Cell

    本文转载至 http://blog.csdn.net/daleiwang/article/details/40423219 UICollectionViewContAutolayoutstoryboa ...

  4. redis10---Setbit 的实际应用

    Setbit 的实际应用 场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃 每周评出: 有奖活跃用户: 连续7天活动,每月评,等等. 思路: Userid dt ac ...

  5. Delphi通过POST传递参数给PHP

    Delphi代码 ******************************************************************************************* ...

  6. POJ - 2417 Discrete Logging(Baby-Step Giant-Step)

    d. 式子B^L=N(mod P),给出B.N.P,求最小的L. s.下面解法是设的im-j,而不是im+j. 设im+j的话,貌似要求逆元什么鬼 c. /* POJ 2417,3243 baby s ...

  7. cassandra在服务端像leveldb一样进行插入初试成功

    经过研究,决定在 cql3/QueryProcessor.java 里面下手. 这里有两个函数,第一个是 public ResultMessage process(String queryString ...

  8. 基于阿里云上实现全站https的正确姿势(一)

    对应的网址:https://yq.aliyun.com/articles/65199 摘要: 目前主流大厂的网站和服务都已经实现了全站https, 例如: baidu, taobao, jd等. 关于 ...

  9. JS DOM1核心概要1

    节点:XML和HTML文档都是有节点构成的结构,每段标记都可以通过节点来表示: 节点类型: 元素节点(常用) 属性节点(常用) 文本节点 注释节点 文档节点 进程节点 文档类型节点 等... 了解节点 ...

  10. [angularJS]ng-hide|ng-show切换

    <div class="row ng-scope"> <div class="col-lg-12"> <h1 class=&quo ...