http://www.lydsy.com/JudgeOnline/problem.php?id=1004

注意数据给出的m是一个没有单位元的置换群!

用Burnside引理,然后对每个置换群dp一下就可以了。

#include<cstdio>
#include<bitset>
#include<cstring>
#include<algorithm>
using namespace std; int a[63], Sr, Sb, Sg, m, p, n, ans = 0; int ipow(int w, int b) {
int ret = 1;
while (b) {
if (b & 1) ret = ret * w % p;
w = w * w % p;
b >>= 1;
}
return ret;
} int f[63][63][63][63], w[63], tot;
bitset <64> vis; int dp() {
vis.reset(); tot = 0;
for (int i = 1; i <= n; ++i)
if (!vis[i]) {
vis[i] = 1;
w[++tot] = 1;
int tmp = a[i];
while (!vis[tmp]) {
vis[tmp] = 1;
++w[tot];
tmp = a[tmp];
}
} for (int i = 1; i <= tot; ++i)
for (int R = 0; R <= Sr; ++R)
for (int B = 0; B <= Sb; ++B)
for (int G = 0; G <= Sg; ++G) {
f[i][R][B][G] = 0;
if (R >= w[i]) (f[i][R][B][G] += f[i - 1][R - w[i]][B][G]) %= p;
if (B >= w[i]) (f[i][R][B][G] += f[i - 1][R][B - w[i]][G]) %= p;
if (G >= w[i]) (f[i][R][B][G] += f[i - 1][R][B][G - w[i]]) %= p;
}
return f[tot][Sr][Sb][Sg];
} int main() {
scanf("%d%d%d%d%d", &Sr, &Sb, &Sg, &m, &p);
n = Sr + Sb + Sg; f[0][0][0][0] = 1;
for (int j = 1; j <= n; ++j) a[j] = j;
(ans += dp()) %= p;
for (int i = 1; i <= m; ++i) {
for (int j = 1; j <= n; ++j) scanf("%d", a + j);
(ans += dp()) %= p;
}
printf("%d\n", ans * ipow(m + 1, p - 2) % p);
return 0;
}

最新文章

  1. When I see you again(加密原理介绍,代码实现DES、AES、RSA、Base64、MD5)
  2. Ember入门指南——教程目录
  3. Linux aclocal
  4. Android基础知识总结
  5. (译)详解javascript立即执行函数表达式(IIFE)
  6. asp.net mvc 利用过滤器进行网站Meta设置
  7. Entity Framework Fluent API
  8. Java for LeetCode 072 Edit Distance【HARD】
  9. Android 内核初识(1)下载源码需求与教程
  10. swift material
  11. Weka算法介绍
  12. PHP设计模式一:工厂方法设计模式
  13. JavaUtil_06_DES加解密工具
  14. ELK简单安装
  15. RNA-seq基本流程
  16. VS2013开发上位机并调用MSCcommm控件的方式
  17. Shell脚本编程基础笔记二
  18. CentOS下安装Hbase
  19. PHP批量添加数据
  20. 【转】c#.net各种应用程序中获取文件路径的方法

热门文章

  1. UOJ#179. 线性规划[模板]
  2. 【STSRM10】数学上来先打表
  3. Ubuntu中启用关闭Network-manager网络设置问题! 【Server版本】
  4. 【Windows使用笔记】使Onedrive同步任意文件夹
  5. android 内核调试
  6. 学习 Linux,101: 自定义或编写简单脚本【转】
  7. openboot的项目
  8. sunos kernel src leakrs
  9. 设计模式之笔记--抽象工厂模式(Abstract Factory)
  10. HTML5 一篇就够的中文教程