【Pólya计数】hnoi2009图的同构计数
来源:互联网 发布:大数据工程师辛苦吗 编辑:程序博客网 时间:2024/06/07 10:32
题目的简单描述:计算出含有n(n<60)个点的无向图的本质不同的个数。
这里面本质不同的概念是一个图通过改变一些点的序号可以变成其他的图。
刚开始看这道题是晕的,60的范围很让人蛋疼,搜索?DP?记得以前在LTC男人八题里有一道有N个点的连通图的个数,但是这道题所有点是一样的,就涉及到了同构的问题。是通过非常巧妙的状态DP?还是通过等价类的搜索?
后来问了道长是Pólya计数。。比较无语的是,我看见这道题第一个排除的算法就是Pólya,他说的:任意两个点之间是没有区别的,那么也就意味着置换群有N!种,统计就更不现实的。
但是,实际上在这N!种置换群种有很多的同类的,一个比较直观的想法就是:对于每个循环节长度(的最小表示)完全一致的一起统计。
但是图同构是基于边(边的选与不选),所以我们还要把点置换转换为边置换,因为我们知道了点置换以后边置换就很明确了。
每个点置换的循环节长度怎么办?搜!其实实际上我们相当于求了一个N的整数拆分,60的整数拆分是多少?1000000!
那么现在我们的任务就是统计同类的置换有多少种,因为我们已经枚举除了每个点置换的循环节长度,那么剩下的任务就是把这些点‘放入’这些‘桶子’之中。但是由于是无向图,我们还需要注意一些细节。。。
关于除法运算,我们使用欧拉定理即可(题目要求输出ans mod 997,997为质数):a/b=a*bp-2 (mod p).
另外,做充分的预处理是非常重要的,要不然就只能打表交了。。。
- 【Pólya计数】hnoi2009图的同构计数
- Pólya计数法的应用
- Pólya计数小结
- 【等价的穿越】Burnside引理&Pólya计数法
- Burnside引理和Pólya计数法
- 【Burnside引理】【Pólya计数法】【Pollard's Rho】【JZOJ 5457】 项链
- BZOJ1488: [HNOI2009]图的同构
- BZOJ1488 [HNOI2009]图的同构
- bzoj1488[HNOI2009] 图的同构
- 【HNOI2009】bzoj1488 图的同构
- 【BZOJ1815&&BZOJ1488】有色图&&图的同构,Polya计数+暴力
- [Polya计数 图的同构] BZOJ 1478 Sgu282 Isomorphism
- BZOJ 1488: [HNOI2009]图的同构
- zoj 3602 树的同构 计数
- Pólya定理初探
- 【有限制的 Pólya+矩阵快速幂】poj2888
- BZOJ 1488 [HNOI2009]图的同构 Polya定理
- [bzoj1488][HNOI2009]图的同构——Polya定理
- Java中负数的二进制表示
- C/C++与汇编的交互
- STM8S的学习-LED(1)
- linux下使用yum安装Apache+php+Mysql+phpMyAdmin
- 怪怪的岚岚
- 【Pólya计数】hnoi2009图的同构计数
- linux gcc printf 执行顺序
- 企业级风险评估精髓
- 一个简单的MATLAB读写文本文件程序--稀疏矩阵向量乘法
- 在RHEL5下面使用yum
- 在MFC下如何定义全局变量和全局函数
- 【爱--完美了彼此】
- Linux常用基本命令及应用技巧
- Mysql