[PE 741] Binary grid colouring

  • 题意

    计数在 n×n 的网格上染色,使得每行每列恰有 2 个黑色格子的方案数。

    旋转或翻转同构算一种,模 109+7

    n2×107

  • 题解

    先考虑没有同构怎么做。

    考虑一张左右各 n 个点的完全二分图,现在就是要求环覆盖方案数。

    那么答案就是将右侧点划分成若干环的方案数乘上 n!

    设环和答案分别为 G(x),F(x)

    有:

    (1)G(x)=i2xi2i(2)=12ln(1x)x2(3)F(x)=eG(x)(4)F(x)=eG(x)G(x)(5)F(x)=F(x)x2(1x)(6)nfn=(n1)fn1+12fn2

    然后利用 Burnside,考虑群 D8 的其余 7 个元素。

    1. 上下或左右翻转

      这是容易的。

    2. 沿对角线翻转

      liri 合并,那么就是每个点度数为 1/2 的图的个数。

      那么

      (7)G(x)=i3(i+1)xi2i+x22(8)=12ln(1x)+x32(1x)+x24x2(9)F(x)=F(x)x3+2x2(1x)2(10)nfn=2(n1)fn1(n3)fn212fn4

    3. 旋转 π

      这部分较为复杂,还是一样地考虑,但是要奇偶讨论一下

      • 2n

        (11)G(x)=i2xi2i+x4(12)=12ln(1x)x4(13)F(x)=F(x)x+14(1x)(14)nfn=(n1)fn1+14(fn1+fn2)

      • 2n

        可以发现此时就是求一个前缀和。

    4. 旋转 π4,3π4

      容易说明 2n 无解,剩下的同理,最后是:

      nfn=(2n1)fn1fn2+2fn3

    这样将所有的贡献算出来就好了,复杂度 O(n)

    注意到所有的贡献都是整式递推,所以理论最优为 O(nlogn)

posted @   leukocyte  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示