hdu 3926 Hand in Hand
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的更多相关文章
- HDU 3926 并查集 图同构简单判断 STL
给出两个图,问你是不是同构的... 直接通过并查集建图,暴力用SET判断下子节点个数就行了. /** @Date : 2017-09-22 16:13:42 * @FileName: HDU 3926 ...
- HDU 3926 图的同构
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3926 题意:给定2个顶点度最大为2的无向图.问你这2个无向图是否同构. 思路: 1.最大度为2.说明这 ...
- hdu 3926 Hand in Hand 同构图
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3926 In order to get rid of Conan, Kaitou KID disguis ...
- hdu 3926 hands in hands
https://vjudge.net/problem/HDU-3926 题意:有n个小朋友,他们之间手拉手,但是一只手只能拉一只手或者不拉,现在给出两个图,表示拉手关系,问这两个图是否同构.思路:一开 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- hdu图论题目分类
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- HDU图论题单
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
随机推荐
- JMXMP SSL
http://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html http://docs.oracle.com/c ...
- XJOI网上同步训练DAY1 T3
思路:一开始看到这题的时候想DP,可是发现貌似不行..因为有前缀也有后缀,而且有的后缀会覆盖到现在的前缀,这就不满足无后效性了啊! 但是有个很巧妙的思路:如果我们知道a[i]的最大值,那么p的数量和q ...
- 关于sencha touch 的JSONP跨域请求的学习研究
此篇文章是对自己在研究学习sencha touch的过程中的点滴记录,主要是JSONP的跨域请求这方面,对于何为是跨域概念还有不熟悉的,可以自己问下度娘. 先上张图: 我要完成的功能就是表格下拉刷新, ...
- logstash 中的贪婪匹配
logstash 中的贪婪匹配: 10.252.142.174 - - [06/Sep/2016:08:41:36 +0800] "GET /api/validate/code/send?m ...
- 修改和获取web.config或app.config文件appSettings配置节中的Add里的value属性 函数
1: /// <summary> 2: /// 修改web.config或app.config文件appSettings配置节中的Add里的value属性 3: /// </summ ...
- PHP mail详细示例
From:http://php.net/manual/zh/function.mail.php Example #1 Sending mail. Using mail() to send a simp ...
- UESTC_敢说就敢做 CDOJ 631
敢说就敢做 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...
- Hessian和Burlap入门教程
一.简介 Hessian和Burlap是由Caucho Technology提供的基于HTTP协议的轻量级远程服务解决方案.他们都致力于借助尽可能简单那的API和通信协议来简化Web服务. He ...
- Linux配置FTP服务器
基于CentOS-6.5 1.先查看是否已安装:rpm -qa vsftpd 或 rpm -ql vsftpd 2.安装:yum install vsftpd -y 3.设置开机启动: chkconf ...
- Rotate It !!(思维)
Rotate It !! Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...