【题解】P8114 [Cnoi2021] 六边形战士
下面规定 \(a\) 是横着的边,\(b<c<a\),\(b\) 边在左上和右下。
逐行匹配,考虑梯形的匹配:
- 两腰都是向外拓展的:必然有一个位置是要向下一行匹配的,其他位置匹配方案就是确定了。
- 这会把下一行分成两部分。
- 两腰平行:匹配是唯一的。
- 这种梯形只会当六边形的边收缩的时候,和一个向下匹配三角形中间夹着的才会出现这个东西。
可以画图理解一下。
考虑向下匹配的这些边,其实是每层的位置递增,然后如果 \(i\le b\) 就要在左侧新增一个。如果 \(c<i\) 就要删除最右侧的。
我们等价于找到绿色到红色的不交路径数量(只通过往右下走):

根据 LGV,我们需要知道绿色从上往下数第 \(i\) 个和红色从上往下数第 \(j\) 个之间路径数量。
需要往下走 \(j-i+c\) 个单位高,往右走 \(\frac{c}{2}+a-\frac{j-i}{2}\) 个单位宽。
由于往下走一步就要走 \(\frac{1}{2}\) 个单位宽后再走整数个单位宽,所以其实我们是 \(j-i+c+1\) 行中每行可以选择向右若干步最后总和等于 \(a-(j-i)\)。方案数即为 \(\binom{a+c}{a+i-j}\)。
现在考虑 \(\frac{(a+c)!}{(a+i-j)!(c+j-i)!}\) 这个东西的 det。
根据提示中的 Krattenthaler's formula,我们需要构造 \(x,u,v\) 使得\(\prod_{k=2}^{j}(x_i+u_k)\prod_{k=j+1}^n(x_i+v_k)=\frac{(a+c)!}{(a+i-j)!(c+j-i)!}\)。
对比 \(j\to j+1\) 的增量:\(\frac{x_i+u_{j+1}}{x_i+v_{j+1}}=\frac{a+i-j}{c+j-i+1}\)。
考虑给每项乘上 \((-1)^{j-1}\):\(x_i+u_{j+1}=a+i-j,x_i+v_{j+1}=i-c-j-1\)。
即 \(x_i=i,u_{j}=a-j+1,v_{j}=-c-j\)。
然后初值,每行乘上 \(\binom{a+c}{i-1}\prod_{k=2}^{b} \frac{1}{i-c-k}\) 就好。
故答案为 \((\prod_{i=1}^{b} \binom{a+c}{a+i-1}\prod_{k=2}^b \frac{1}{i-c-k})\prod_{1\le i< j\le b} (j-i)\prod_{2\le i\le j\le b} (a-i+1+c+j)\)。
浙公网安备 33010602011771号