1 条题解

  • 0
    @ 2025-8-24 22:30:42

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Mivik
    AFO

    搬运于2025-08-24 22:30:42,当前版本为作者最后更新于2021-04-15 23:53:32,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Subtask 1

    这不就一种吗?

    Subtask 2

    这不就 n2n^2 种吗?

    Subtask 3

    我会爆搜!

    Subtask 4

    考虑 nn 是奇数。我们把棋盘 4545 度旋转一下然后按列标号,像这样(n=5n=5):

        5
       4 6
      3 5 7
     2 4 6 8
    1 3 5 7 9
     2 4 6 8
      3 5 7
       4 6
        5
    

    不难发现,第 ii 列(1i<n1\le i<n)和第 i+ni+n 列会互相掌控,第 ii 行和第 i+ni+n 行也会互相掌控,我们改写一下上面那个棋盘,把第 i+ni+n 行都接到第 ii 行末尾,并把标号为 i+ni+n 的改成标号为 ii,于是变成了

    5 2 4 1 3
    4 1 3 5 2
    3 5 2 4 1
    2 4 1 3 5
    1 3 5 2 4
    

    也就是说,我们现在需要在这个矩阵中选 mm 个互不相同的数,且这些数不在同一行。我们发现这个矩阵每行每列都不包含相同的数,这个结论实际上可以简单讨论得到。显然任意改变一行内数的顺序不会影响答案,我们完全可以把上面那个矩阵排为

    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    

    于是这个问题就变成了,在一个 n×nn\times n 的棋盘上选 mm 个位置,这些位置没有任意两个在同一行或同一列。考虑枚举用到了哪些行和哪些列后剩下的方案数就是 m!m!,于是答案为

    (nm)2m!\binom nm^2m!

    Subtask 5

    考虑 nn 是偶数的情况。这种情况我们发现黑格和白格(也就是按行号与列号的奇偶性分组)互不相关,我们可以分开考虑。更进一步地,不难发现旋转后黑格部分和白格部分是完全相同的,也就是说在它们上面放棋子的方案数相同,我们只需要考虑任意一种。

    我们沿袭上面的方法把一种格子提出来标号(n=6n=6):

      34
     2345
    123456
     2345
      34
    

    然后第 ii 列(1in/21\le i\le n/2)和第 i+n/2i+n/2 列会互相掌控,第 ii 行和第 i+n/2i+n/2 行也会互相掌控,我们改写棋盘:

    312312
    231231
    123123
    

    对行重排:

    112233
    112233
    112233
    

    我们发现每个 [0,n/2][0,n/2] 间的数字恰在每行出现了两次,这也是易证的。我们考虑选出 mm 个互不相同且不在同一行的数,选第 kk 个数是我们恰有 n2(k1)n-2(k-1) 种方案,于是在黑格 / 白格中放 kk 个棋子的方案数就是

    $$\begin{aligned}&\binom{n/2}k\prod_{i=1}^k(n-2(i-1))\\=&\binom{n/2}k2^k\prod_{i=1}^k(n/2-(i-1))\\=&\binom{n/2}k2^k(n/2)^{\underline k}\\=&\binom{n/2}k^22^kk!\end{aligned} $$

    于是最终的答案就是

    $$\begin{aligned} &\sum_{i=0}^k\binom{n/2}i^22^ii!\cdot\binom{n/2}{k-i}2^{k-i}(k-i)!\\ =&2^k\sum_{i=0}^k\binom{n/2}i^2\binom{n/2}{k-i}^2i!(k-i)! \end{aligned} $$

    预处理阶乘后直接计算即可。

    Subtask 6

    把关于 nn 的部分改成下降幂:

    $$2^k\sum_{i=0}^k\left(\frac{(n/2)^{\underline i}(n/2)^{\underline{k-i}}}{i!(k-i)!}\right)^2i!(k-i)! $$

    预处理下降幂后直接计算即可。

    mivik.h / 代码

    • 1

    信息

    ID
    6694
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    0
    已通过
    0
    上传者