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

这道题是判断两个图是不是同构相似。只要判断图中环的个数和链的个数,和每个环的节点数和链的节点数是否相等。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 30000
using namespace std; int t,n1,m1,n2,m2;
int f[maxn],num[maxn];
int cicl[maxn];
struct node
{
int lis;
int cicl;
bool operator <(const node &a)const
{
return ((lis<a.lis)||(lis==a.lis&&cicl<a.cicl));
}
}p1[maxn],p2[maxn]; int find1(int x)
{
if(x==f[x]) return x;
return f[x]=find1(f[x]);
} void merge1(int a,int b)
{
int fa=find1(a);
int fb=find1(b);
if(fa==fb)
{
cicl[fa]=;
return;
}
num[fa]+=num[fb];
f[fb]=fa;
} void inti(int n)
{
for(int i=; i<=n; i++)
{
f[i]=i;
num[i]=;
}
memset(cicl,,sizeof(cicl));
} int main()
{
scanf("%d",&t);
for(int ca=; ca<=t; ca++)
{
scanf("%d%d",&n1,&m1);
inti(n1);
for(int i=; i<m1; i++)
{
int a,b;
scanf("%d%d",&a,&b);
merge1(a,b);
}
int cnt1=;
for(int i=; i<=n1; i++)
{
if(f[i]==i)
{
p1[cnt1].lis=num[i];
p1[cnt1++].cicl=cicl[i];
}
}
scanf("%d%d",&n2,&m2);
inti(n2);
int cnt2=;
for(int i=; i<m2; i++)
{
int a1,b1;
scanf("%d%d",&a1,&b1);
merge1(a1,b1);
}
for(int i=; i<=n2; i++)
{
if(f[i]==i)
{
p2[cnt2].lis=num[i];
p2[cnt2++].cicl=cicl[i];
}
}
//printf("....%d %d\n",cnt1,cnt2);
printf("Case #%d: ",ca);
if(n1!=n2)
{
printf("NO\n");
continue;
}
if(cnt1!=cnt2)
{
printf("NO\n");
continue;
}
bool flag=true;
sort(p1,p1+cnt1);
sort(p2,p2+cnt2);
for(int i=; i<cnt1; i++)
{
if(p1[i].lis!=p2[i].lis||(p1[i].cicl!=p2[i].cicl))
{
flag=false;
printf("NO\n");
break;
}
}
if(flag)
{
printf("YES\n");
}
}
return ;
}

hdu 3926 Hand in Hand的更多相关文章

  1. HDU 3926 并查集 图同构简单判断 STL

    给出两个图,问你是不是同构的... 直接通过并查集建图,暴力用SET判断下子节点个数就行了. /** @Date : 2017-09-22 16:13:42 * @FileName: HDU 3926 ...

  2. HDU 3926 图的同构

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3926 题意:给定2个顶点度最大为2的无向图.问你这2个无向图是否同构. 思路: 1.最大度为2.说明这 ...

  3. hdu 3926 Hand in Hand 同构图

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

  4. hdu 3926 hands in hands

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

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

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

  6. hdu图论题目分类

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

  7. HDU图论题单

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

  8. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

随机推荐

  1. vs 自动生成core dump文件

    一直以来觉着core dump这个东西很神奇,在初步学习的时候也没有个大方向,最近项目需要记录程序崩溃时的日志信息,因此在网上寻找相关的信息,此时core dump也成为了我重点关注的东西. 说说我的 ...

  2. js收集错误信息,错误上报

    线上的代码可有有时候用户会反应不好使,一般是因为js造成的! 尤其在移动端各个手机之前的差异特别大. 下面这段代码是获取能帮助你! <script> window.onerror = fu ...

  3. 移植strace调试工具到arm平台

    strace工具是一个非常强大的工具,是调试程序的好工具.要移植到arm平台,就需要使用交叉编译工具编译生成静态链接的可执行文件.具体步骤如下:1.下载 strace-4.5.16     移植str ...

  4. Asp.net MVC中的ViewData与ViewBag(转)

    在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从 ...

  5. phpcms 缓存

    PHPCMS设置和读取缓存文件 PHPCMS开发中经常用到读取文件缓存,比如常见的当前站点类别,是保存在缓存文件中的,读取的时候 用:$this->categorys = getcache(‘c ...

  6. View中取设置了Tag的UILabel

    UILabel *badge = (UILabel *)[self.view viewWithTag:];

  7. java-程序执行原理

    java应用可以打包成jar 格式,jar格式其实只是一种很普通的压缩格式,与zip格式一样,只不过是它会在压缩文件的目录结构中增加一个META-INF/ MANIFEST.MF 的元文件. 我们知道 ...

  8. 玩程序 之 一 . 字符串处理工具(可通过C#脚本扩展)

    平常喜欢写点小东西玩玩,既可以娱乐自己满足自己的虚荣心,又可以方便工作和学习,今天且拿出一个来,与大家一起分享!  1. 软件介绍 言归正传,先看看需求,有这样一串字符串 abc,def,ghi,jk ...

  9. C++入门学习——标准模板库之vector

    vector(向量容器),是 C++ 中十分实用一个容器.vector 之所以被觉得是一个容器,是由于它可以像容器一样存放各种类型的对象,简单地说,vector 是一个可以存放随意类型(类型可以是in ...

  10. Coding.net代码托管空间申请与使用-安装并运行WordPress博客

    参考: http://www.freehao123.com/coding-net/ Coding.net这是一个国内新兴的代码托管平台,功能主要包括:代码托管.在线运行环境.监控代码质量,兼有一定的社 ...