【BZOJ1488】[HNOI2009]图的同构计数】的更多相关文章

题目传送门 bzoj1488 - [HNOI2009]图的同构 bzoj1815 - [Shoi2006]color 有色图(双倍经验) 题解 暴力 由于在做题之前已经被告知是 Burnside 引理,貌似思考的时候少了一些乐趣啊. 考虑一个置换 \(p\),想要求出这个置换下的不动点的个数.对于一个不动点,若存在一条边 \((a, b)\),一定存在一条边 \((p_a, p_b)\). 那么考虑一个长度为 \(l\) 的循环,若 \((i, j)\) 是一条 \(i, j\) 均在循环中的点…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1488 1488: [HNOI2009]图的同构 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 591  Solved: 388[Submit][Status][Discuss] Description 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经…
题目链接 题意 求 n 个点的同构意义下不同的图的数量.\((n\leq 60)\) Sol \(Polya\) 定理的练手题. 我们这里先把边的存在与否变成对边进行黑白染色,白色代表不存在,这样就变成了一个对完全图中的边进行染色的问题,于是可以使用 对\(Burnside\)引理 进行优化后的 \(Polya\) 定理. 显然总的置换群大小是 \(n!\) 对应了每一种对边进行重新编号的方案,关键就在于要求出不动点的个数. 使用 \(Polya\) 定理,那么只需要求出所有关于边的置换中每一个…
题目大意 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和边集能完全与b图一一对应. 题解 这个题是学习了Polya定理和群论以后的练手题,但是推了好久并没有推出来....真的是太难辣... 首先我先说一下我错误的想法: 很容易就把这个题转化成了给\(K_n\)的完全图上的边进行二着色的问题,然后,由于在组合数学课程中经常接触到多边形着色,所以我就把这个题错误的转化成了…
[BZOJ1488][HNOI2009]图的同构(Burside引理,Polya定理) 题面 BZOJ 洛谷 题解 求本质不同的方案数,很明显就是群论这套理论了. 置换一共有\(n!\)个,考虑如何对于任意一个置换求不动点数量. 首先边存在或者不存在太麻烦了,我们假装所有边都已经存在,出现过的边和不存在的边用两种不同的颜色染色即可.这样子我们就假装所有的边都出现了,也就是一个完全图. 显然循环是对于点而论的,但是这题同构是对于边而论的.那么我们对于一个点的循环,考虑它的两个顶点.这两个顶点只有两…
题目链接 (Luogu) https://www.luogu.org/problem/P4727 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=1488 题解 Burnside引理经典题. 首先考虑一个\(O(n!\times poly(n))\)暴力: 枚举点的置换,然后计算在置换下保持不变的图的个数. 把置换拆成若干个轮换. (1) 考虑轮换内部: 假设一轮换为\((a_1\ a_2\ ...\ a_n)\), 那么\((a_…
由于有很多本质相同的重复置换,我们先枚举各种长度的点循环分别有多少个,这个暴搜的复杂度不大,n=53时也只有3e5左右.对于每种搜索方案可以轻易求出它所代表的置换具体有多少个. 但我们搜索的是点置换组成的循环,要求的是边置换组成的循环.现在问题就是对于每种搜索方案,求出有多少个边循环. 首先,如果一条边的两个端点属于同一点循环,另一条边的端点属于两个不同点循环,那么显然这两条边不可能属于同一边循环. 对于一个长度为L的点循环,观察发现所有两个端点都属于这个点循环的边构成了L/2个边循环. 对于两…
题意:两个图AB同构:把A的顶点重新编号后与B一模一样.求n个顶点的图一共有多少个?(同构的算一种) 思路:边有n*(n-1)/2,这些边可以有可以没有,所以等同于边的颜色有两种.然后将n划分成循环节的和,n=L1+L2+……+Lm.现在需要把点置换映射到边置换.两个边在一个点循环节(大小L)时边置换循环节为L/2,否则为Gcd(L1,L2).然后就是计算(L1,L2,……,Lm)这种划分的个数,设m个循环有t种数字,每种数字个数p1,p2,……,pt,那么划分个数为:n!/(L1*L2……*L…
完全图中选出不同构的简单图有多少个 上题简化版,只有两种颜色....直接copy就行了 太诡异了,刚才电脑上多了一个不动的鼠标指针,然后打开显卡管理界面就没了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; ,P=; typedef long long ll; inline…
Description 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和边集能完全与b图一一对应. Input 输入一行一个整数N,表示图的顶点数,0<=N<=60 Output 输出一行一个整数表示含N个点的图在同构意义下互不同构的图的数目,答案对997取模. Sample Input 输入1 1 输入2 2 输入3 3 Sample Output 输出1 1 输出…