同构图概念:假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所有的x,y∈V均有xy∈E等价于m(x)m(y)∈E1,则称G和G1是同构的,这样的一个映射m称之为一个同构,如果G=G1,则称他为一个自同构。
意思就是图的结构是一样的。
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3926
这是一个特殊的图,图的最大度数为2,因此对于一个图的每一个连通分量,不是一条链就是一个环。对此,我们可以统计每个连通分量的结点个数和是否为环的状态,两个图的每个连通分量进行比较,如果两个图中的连通分量两两状态相同,那么他们就是同构的。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;