• 计数-Rook


    (x^{underline{n,m}}=prodlimits_{i=0}^{n-1}(x-im),lfloor n floor_m)(le n)的最大的(m)的倍数。

    ( ext{Some Definition})

    Rook多项式

    给定棋盘(B),在(B)上放(k)个Rook并使任意两个Rook不同行、不同列的方案数记为(r_k(B)),构造Rook多项式(R(B)=sumlimits r_i(B)x^i)
    (B_{(i)})表示去掉(i)所在行和列之后的剩余部分,用(B_{[i]})表示去掉(i)之后的剩余部分。
    那么显然有(r_k(B)=r_{k-1}(B_{(i)})+r_k(B_{[i]})),即(R(B)=xR(B_{(i)})+R(B_{[i]}))
    然后我们有两个很显然的结论:
    交换棋盘的任意两行/列不会产生影响。
    两个行列相互不交的棋盘相互独立。

    分级棋盘

    给定一个(minmathbb {N_+}),将(B)划分,第(i)级包含([(i-1)m+1,im])行。
    现在我们要在这个棋盘上放Rook,满足所有Rook在不同级、不同列。
    (m)级棋盘(B)上放(k)个Rook的方案数记为(r_{m,k}(B))

    Ferrers棋盘

    若棋盘(B=(b_1,cdots,b_n))满足(b_ile b_{i+1}),则称(B)为Ferrers棋盘。

    独立棋盘

    若棋盘(B=(b_1,cdots,b_n))满足在每个(((i-1)m,m))中最多有一个(b_i),则称(B)为独立棋盘。

    上升棋盘

    定义一个棋盘(m)-上升当且仅当(b_ige b_{i-1}+m)

    定义一个棋盘(B=(b_1,cdots,b_n))的一个区(z)为满足(forall kin(i,j],lfloor b_k floor_m=lfloor b_i floor_m)的极大子段((b_i,cdots,b_j))

    给定(z=(b_i,cdots,b_j)),定义它的余为( ho(z)=sumlimits_{k=i}^j(b_k-lfloor b_k floor_m))

    等价棋盘

    定义两个棋盘(B,B')等价当且仅当(forall kge0,r_k(B)=r_k(B'))
    定义两个棋盘(B,B'm)-等价当且仅当(forall kge0,r_{m,k}(B)=r_{m,k}(B'))
    记做(Bequiv B')

    Rook向量

    定义棋盘(B=(b_1,cdots,b_n))的Rook向量为(zeta(B)=(0,cdots,n-1)-(b_1,cdots,b_n))
    可以得到(Bequiv B'Leftrightarrowzeta(B))(zeta(B'))的重排。(如果两个棋盘列数不等,那么就在列数少的那一个棋盘的前面补(b_i=0)的列)

    ( ext{Some Theorems})

    Goldman-Joichi-White定理

    给定Ferrers棋盘(B=(b_1,cdots,b_n)),那么有(sumlimits_{k=0}^nr_k(B)x^{underline{n-k}}=prodlimits_{i=1}^n(x+b_i-i+1))

    Foata-Schützenberger定理

    任意一个Ferrers都与某个(1)-上升棋盘等价。

    Briggs-Remme定理

    给定独立棋盘(B=(b_1,cdots,b_n)),那么有(sumlimits_{k=0}^nr_{m,k}(B)x^{underline{n-k,m}}=prodlimits_{i=1}^n(x+b_j-(i-1)m))

    Barrese-Loehr-Remmel-S定理

    给定Ferrers棋盘(B=(b_1,cdots,b_n)),那么有(sumlimits_{k=0}^nr_{m,k}(B)x^{underline{n-k,m}}=prodlimits_{i=1}^n(x+lfloor b_i floor_m-(i-1)m+epsilon_i))
    其中(epsilon_i=[ ext{bi is the last column in zone z}] ho(z))
    任意一个Ferrers棋盘都与某个(m)-上升棋盘等价。

  • 相关阅读:
    大话设计模式C++实现-第1章-简单工厂模式
    mac下的git的安装与简单的配置
    Execute failed: java.io.IOException: Cannot run program "sdk-linux/build-tools/22.0.0/aapt": error=2
    UIScrollView 循环滚动,代码超简单
    字符编码的前世今生
    Android 4.4 KitKat 支持 u 盘功能
    Java Tread多线程(1)实现Runnable接口
    (hdu step 6.3.3)Air Raid(最小路径覆盖:求用最少边把全部的顶点都覆盖)
    每日算法之二十三:Reverse Nodes in k-Group
    Android4.0-4.4 加入实体按键振动支持的方法(java + smali版本号)
  • 原文地址:https://www.cnblogs.com/cjoierShiina-Mashiro/p/12168422.html
Copyright © 2020-2023  润新知