标题效果:特定n张卡m换人,编号寻求等价类

数据保证这m换人加上置换群置换后本身构成

BZOJ坑爹0.0 条件不那么重要出来尼玛怎么做

Burnside引理……昨晚为了做这题硬啃了一晚上白书0.0 都快啃吐了0.0

Burnside引理:一个置换群下的等价类个数等于全部置换的不动点个数的平均值

没有接触过群论的建议去啃白书…… 网上的东西看不懂的

最后那个除法要用乘法逆元 我懒得写EXGCD写了费马小定理0.0

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 70
using namespace std;
int r,g,b,m,n,p,ans;
int a[M],stack[M],top;
int f[21][21][21];
void DFS(int x)
{
stack[top]++;
int temp=a[x];
a[x]=0;
if(a[temp])
DFS(temp);
}
int DP()
{
int i,j,k;
memset(f,0,sizeof f);f[0][0][0]=1;
while(top)
{
for(i=r;~i;i--)
for(j=g;~j;j--)
for(k=b;~k;k--)
{
if(i>=stack[top]) f[i][j][k]+=f[i-stack[top]][j][k];
if(j>=stack[top]) f[i][j][k]+=f[i][j-stack[top]][k];
if(k>=stack[top]) f[i][j][k]+=f[i][j][k-stack[top]];
f[i][j][k]%=p;
}
stack[top--]=0;
}
return f[r][g][b];
}
int KSM(int x,int y)
{
int re=1;
while(y)
{
if(y&1)re*=x,re%=p;
x*=x,x%=p;
y>>=1;
}
return re;
}
int main()
{
int i,j;
cin>>r>>g>>b>>m>>p;
n=r+g+b;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
scanf("%d",&a[j]);
for(j=1;j<=n;j++)
if(a[j])
++top,DFS(j);
ans+=DP(),ans%=p;
}
for(j=1;j<=n;j++)
a[j]=j;
for(j=1;j<=n;j++)
if(a[j])
++top,DFS(j);
ans+=DP(),ans%=p;
ans*=KSM(m+1,p-2),ans%=p;
cout<<ans<<endl;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

BZOJ 1004 HNOI2008 Cards Burnside引理的更多相关文章

  1. BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )

    题意保证了是一个置换群. 根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i, ...

  2. bzoj 1004 1004: [HNOI2008]Cards burnside定理

    1004: [HNOI2008]Cards Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1668  Solved: 978[Submit][Stat ...

  3. bzoj1004 [HNOI2008]Cards Burnside 引理+背包

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=1004 题解 直接 Burnside 引理就可以了. 要计算不动点的个数,那么对于一个长度为 \ ...

  4. [BZOJ 1004] [HNOI2008] Cards 【Burnside引理 + DP】

    题目链接:BZOJ - 1004 题目分析 首先,几个定义和定理引理: 群:G是一个集合,*是定义在这个集合上的一个运算. 如果满足以下性质,那么(G, *)是一个群. 1)封闭性,对于任意 a, b ...

  5. 【BZOJ1004】[HNOI2008]Cards Burnside引理

    [BZOJ1004][HNOI2008]Cards 题意:把$n$张牌染成$a,b,c$,3种颜色.其中颜色为$a,b,c$的牌的数量分别为$sa,sb,sc$.并且给出$m$个置换,保证这$m$个置 ...

  6. bzoj 1004 [HNOI2008]Cards && poj 2409 Let it Bead ——置换群

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1004 http://poj.org/problem?id=2409 学习材料:https:/ ...

  7. luogu P1446 [HNOI2008]Cards burnside引理 置换 不动点

    LINK:Cards 不太会burnside引理 而这道题则是一个应用. 首先 一个非常舒服的地方是这道题给出了m个本质不同的置换 然后带上单位置换就是m+1个置换. burnside引理: 其中D( ...

  8. 【bzoj1004】[HNOI2008]Cards Burnside引理+背包dp

    题目描述 用三种颜色染一个长度为 $n=Sr+Sb+Sg$ 序列,要求三种颜色分别有 $Sr,Sb,Sg$ 个.给出 $m$ 个置换,保证这 $m$ 个置换和置换 ${1,2,3,...,n\choo ...

  9. bzoj1004: [HNOI2008]Cards(burnside引理+DP)

    题目大意:3种颜色,每种染si个,有m个置换,求所有本质不同的染色方案数. 置换群的burnside引理,还有个Pólya过几天再看看... burnside引理:有m个置换k种颜色,所有本质不同的染 ...

随机推荐

  1. CSDN-markdown编者LaTex数学公式

    LaTex什么? LaTeX(LATEX.音译"拉太和")它是基于ΤΕΧ排版系统,莱斯利由美国计算机科学家·兰伯特(Leslie Lamport)于20纪80年代初期开发,利用这样 ...

  2. 如何更改Java括号中的默认对齐

    (1)在使用程序猿非常Java当大括号的排列有感就是它的不那么整齐! 很多人不知道为什么会这样: public class HelloWorld{ pulic static void main(Str ...

  3. eclipse设备SVN插入

    原文:http://www.cnblogs.com/ruiati/p/3584120.html 1.下载最新的Eclipse.我的版本号是3.7.2 indigo(Eclipse IDE for Ja ...

  4. smark和openfire即时通信代码

    从:http://blog.csdn.net/casuallc/article/details/34794501 server:openfire client计划:smark写 首先安装openfir ...

  5. 第三篇——第二部分——第六文 监控SQL Server镜像

    原文:第三篇--第二部分--第六文 监控SQL Server镜像 原文出处:http://blog.csdn.net/dba_huangzj/article/details/26846203 要优化, ...

  6. Python 获取Twitter用户与Friends和Followers的关系(eg, 交集,差集)

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-30 @author: guaguastd @name: f ...

  7. Objective-c正确的写法单身

    Singleton模式iOS发展可能是其中最常用的模式中使用的.但是因为oc语言特性本身,想要写一个正确的Singleton模式是比较繁琐,iOS中单例模式的设计思路. 关于单例模式很多其它的介绍请參 ...

  8. 一个轻量级rest服务器

    RestServer直接发布数据库为json格式提供方法 RestSerRestServer直接发布数据库为json格式 支持MySQL,SqlServer,Oracle直接发布为Rest服务, 返回 ...

  9. Linux磁盘分区,目录树,文件系统的关系(转)

    研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式.对于基本概念和理论理解不到位,在工作之中会走很多弯路和犯很多错误.今天花一天的时间,终于对三者的区别和联系有了更 ...

  10. Kinect开发笔记之二Kinect for Windows 2.0新功能

    这是本博客翻译文档的第一篇文章.笔者已经苦逼的竭尽全力的在翻译了.但无奈英语水平也是非常有限.不正确或者不妥当不准确的地方必定会有,还恳请大家留言或者邮件我以批评指正.我会虚心接受. 谢谢大家.   ...