
置换群
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
2018.11.17【NOIP练习】zxyoi的项链(数学推理)(线性筛)(欧拉函数)(链表)(Polya原理)
传送门 解析: zxyoi完成oi生涯中的第一次出题。 思路: 首先肯定是要推结论的。 令询问为nnn,mmm时的答案为N(n,m)N(n,m)N(n,m) 首先断环成链,同一条项链考虑mmm中断开的方式,那么得到的链的数量就有mN(n,m)mN(n,m)mN(n,m)。每个位置任意填得到的答案为nmn^mnm,其中必然有重复。 考虑序列a1a2...ama_1a_2...a_ma1a2.....原创 2018-11-17 12:44:41 · 398 阅读 · 3 评论 -
【洛谷P4916】魔力环(Burnside)(组合数学)
传送门 题解: 看到旋转同构,考虑Burnside。 旋转同构中常见的phi的转化就不提了。 直接考虑循环个数为ddd的时候的答案。 显然只有当d∣nd\mid nd∣n且d∣md\mid md∣m的时候答案非0。 特判掉n=mn=mn=m和m=0m=0m=0的情况。 现在环上必然有黑色和白色。 设N=n/d,M=m/dN=n/d,M=m/dN=n/d,M=m/d,接下来分类讨论。 如果M≤KM...原创 2019-09-02 20:09:15 · 289 阅读 · 0 评论 -
【洛谷P4708】画画(Burnside)(高斯消元)(并查集)
传送门 题解: 首先遇到这种图同构问题数据范围还小得一批的,还是先考虑暴力枚举有序正整数拆分,算出某种置换下的答案后来搞一波。 注意到题目要求的实际上是每个连通块都有欧拉回路,也就是所有点的度数必须是偶数。 可以直接用最小表示法来表示循环,然后爆搜所有边等价类对点的度数的影响。然后高斯消元解xor方程组算方案数就行了。 但是高斯消元上界是O(n4)O(n^4)O(n4),最坏是O(n2)O(n^...原创 2019-09-02 18:55:12 · 352 阅读 · 0 评论 -
【SHOI2006】有色图(Polya)
传送门 题解: 和这道题是一样的,只是把染色的部分换了一下而已:https://blog.youkuaiyun.com/zxyoi_dreamer/article/details/100211613 代码: #include<bits/stdc++.h> #define ll long long #define re register #define cs const using std::...原创 2019-09-02 12:10:01 · 406 阅读 · 0 评论 -
【HNOI2009】图的同构(Polya)
传送门 题解: 目前是洛谷上面非打表代码的rk1。 很显然我们考虑点的n!n!n!种置换。 显然对应着边的n!n!n!种置换,对于每条边的出现与否,我们可以看作染色为黑白。 显然染色方案用Polya算一下,现在的问题是每种点置换中有多少种边等价类。 首先考虑一条边(u,v)(u,v)(u,v),如果u,vu,vu,v在同一个循环中,显然所有在循环中距离相等的点的连边在同一个等价类中,形式化地说,...原创 2019-09-02 11:33:40 · 211 阅读 · 0 评论 -
【题目泛做】尘封的花环(Pollard-Rho)(Burnside)
用 k 种颜色对大小为 n 的环进行染色,要求相邻点上的颜色不同,旋转同构的方案视作相同,求本质不同的方案数。对998244353取模。 T≤20,n≤10 ^ 18,k≤10 ^ 9 保证n不是998244353的倍数 题解: 利用Burnside,我们显然考虑枚举置换。 发现一个循环位移iii次的置换作用于一个有标号环上面之后,会把问题变成一个环长为gcd(n,i)gcd(n,i)gcd(n...原创 2019-09-02 10:29:48 · 293 阅读 · 0 评论 -
【HDU6426】【LOJ6538】Alkane(生成函数)(分治NTT)(Burnside)
比较毒瘤的群论推导题原创 2019-07-28 20:41:04 · 743 阅读 · 1 评论 -
【洛谷P4709】信息传递(置换)(组合数学)(多项式Exp)
传送门 题解: 很早之前看到过这道题,当时连置换是什么都不知道。。。 首先考虑置换ggg中的某一个长为SSS的循环环,学过群论的应该知道,在置换自乘nnn次之后,这个循环会变为gcd(n,S)gcd(n,S)gcd(n,S)个循环。 考虑将ttt个长为SSS的循环拼接成一个,使得若干次自乘之后这个循环断裂为ttt个长为SSS的循环。翻过任何一本群论教材就知道,最后在同一循环中的元素是那些只与初始...原创 2019-07-29 21:34:47 · 396 阅读 · 0 评论 -
【UVA10601】Cubes(Burnside)(组合数学)
传送门 解析: 很显然我们需要运用BurnsideBurnsideBurnside来计算而不是PolyaPolyaPolya,因为这个显然并不是那么简单的染色问题。 那么考虑怎么求出所有不动点个数。 考虑如下几种置换: 不动,1种,12个循环,每个长度为1。 以体对角线为轴旋转,4条对角线,每条2种转法,4个循环,每个循环长度为3 以对面中心连线为轴旋转,3条线,每条有3种转法,但是有区别 其...原创 2019-05-25 14:58:29 · 300 阅读 · 0 评论 -
【SCOI2009】【洛谷P2526】【BZOJ1298】骰子的学问(基环树)(构造)
BZOJ传送门 洛谷传送门 解析: 将iii向a[i]a[i]a[i]连边,那么我们得到一个内向基环树森林(环上点没有外向边)。 显然环外的骰子直接分配极大值就行了。 对于环内的骰子我们有这样一种策略:选择一个点,向父亲方向依次放下1~n的值,再选择它的父亲,向父亲方向依次放下n+1 ~ 2n。如此重复直到填满。 可以证明这样的策略填出来的环内概率≥12\ge\frac{1}2≥21,而且只有...原创 2019-05-25 11:31:35 · 337 阅读 · 1 评论 -
【HNOI2008】【BZOJ1004】【洛谷P1446】Cards(Burnside)(背包)
BZOJ传送门 洛谷传送门 解析: 首先题目告诉我们给的置换就是一个群,那么可以直接上Burnside。 发现这个染色有个数限制,不能用Polya。 那么怎么求置换不动点个数? 显然我们只要求一个循环里面的所有点染上相同的颜色,把所有循环以及循环的长度求出来,然后做背包方案数就行了。 由于懒得写DP就直接上记搜了。 代码: #include<bits/stdc++.h> #defi...原创 2019-05-24 21:46:27 · 189 阅读 · 0 评论 -
【校内模拟】欧拉回路(Burnside)(容斥)
简要题意:求解小于等于nnn个点,有欧拉回路,允许有自环的无向图的个数,点标号重排后同构的图算同一种。 题解: 欧拉图判定就两个条件,连通,所有点度数为偶数。 自环先不管,反正对点度和欧拉回路都没有影响。 连通先不管,算出所有情况后用不连通容斥算连通,这个应该是一个比较显然的思路。 考虑算所有点度数都为偶数的图在允许标号重排下有多少种,就是这道题:here 然后现在考虑容斥算连通的答案。 由于这个...原创 2019-10-09 17:11:29 · 170 阅读 · 0 评论