【BZOJ1488】[HNOI2009]图的同构计数

题目链接

题意

求 n 个点的同构意义下不同的图的数量。 ( n ≤ 60 ) (n\leq 60) (n60)

Sol

P o l y a Polya Polya 定理的练手题。
我们这里先把边的存在与否变成对边进行黑白染色,白色代表不存在,这样就变成了一个对完全图中的边进行染色的问题,于是可以使用 对 B u r n s i d e Burnside Burnside引理 进行优化后的 P o l y a Polya Polya 定理。

显然总的置换群大小是 n ! n! n! 对应了每一种对边进行重新编号的方案,关键就在于要求出不动点的个数。
使用 P o l y a Polya Polya 定理,那么只需要求出所有关于边的置换中每一个置换被分成的循环总个数(也就是等价类总个数)。
显然每一个对于点的置换都唯一对应一个对于边的置换。但是即使是这样,置换数目依然是不可枚举的。所以我们肯定要另求他法。
由于最后的计算只和被分解成的循环个数有关,于是我们可以爆搜出所有的整数拆分方案代表最后循环的格式。
考虑可能处于一个等价类的边集要么这些边的端点都位于一个点的循环内部,要么这些边的端点仅连接了两个不同的循环。
首先考虑一个循环内部边集的等价类个数,假设有 n 个点,那么只用考虑这 n 个点的完全图中的边。我们把这些点排成一排,这样每一条边就有了一个跨度,循环一次相当于把这些点全部往前挪动一位并且把最前面的点扔到最后面去,这样显然跨度相同的边会在一个等价类里,然后由于这是一个环 那么跨度为 d d d 的和跨度为 n − d + 1 n-d+1 nd+1 的也是等价的 , 跨度总共有 ( n − 1 ) (n-1) (n1)种于是总共有 ⌊ n 2 ⌋ \lfloor \frac{n}{2} \rfloor 2n 种等价类。
然后考虑两个循环之间的等价类个数 , 假设大小为别为 a , b a,b a,b , 我们把两个循环就看作是一个环 , 每次置换相当于是把两个环同时转动一圈 , 这样子总共会便历到的边就有 l c m ( a

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值