【csp2019模拟赛tkh】T1_excatalan

<前言>

(这只是一个我们自己的模拟赛啊。。。)

大佬们可以看看题目。


<正文>

简要题意:

求n对括号匹配中恰好有m对失配的方案数。

\(Solution\)

题外 话:

首先,我们发现n对括号恰好完全匹配的方案数就是卡特兰数,这个应该是一个常识了(然而我在考试的时候没想出来。。。)

再看看文件名,扩展卡特兰数,说明我们思路对了但是我们要的是恰好有m对失配的情况,这咋搞呢。

实际上看似不可做,在求卡特兰数的时候魔改一下公式就可以啦。

然而为什么呢?

有一种求卡特兰数的方法叫折线法。

这种方法有什么妙用呢?

我们知道一个卡特兰数的模型:在n*n矩阵上不过对角线的左下角到右上角的方案数就是第n项卡特兰数了。

还有一个模型是进出栈的问题,合法出栈顺序数。

我们把坐标轴倾斜一下,把对角线贴在x轴上,发现等价于不过x轴的,从原点到2n合法方案数。其中我们走的是一条折线,向上倾表示进栈,下斜表示一次出栈。

为什么是2n呢?具体我也不会证明,大概就是原本对角线是不能经过的,现在可以经过就要改变终点。

(以下内容参考这里

上面有图,可以帮助理解。

整个过程认为是从坐标(0,0)走到(2n,0)。因为栈内必须要有元素,所以,折线不能在x轴下方,这样才是合法的。

不合法的方案呢?就是跨过了x轴,但仍然最终到达了终点的方案。

好的现在我们引入了这个模型,那么根据一些小知识合法方案=总方案-非法方案

现在我们要求总方案

即2n次操作,操作种类为2,要求每种操作次数相同,那相当于一个组合数问题,即\(\frac {(2n)!}{n! \times n!}\),也可以写成\(\binom{2n}{n}\)

接下来考虑非法方案

即至少有一时刻折线处于x轴下方。

  • 对于任意跨越x轴的情况,必有将与\(y=-1\)相交。

  • 找出第一个与\(y=-1\)相交的点k,将k点以右的折线根据\(y=-1\)对称(即操作1与操作2互换了)。可以发现终点最终都会从\((2n,0)\)对称到\((2n,-2)\)。\

  • 由于对称总是能进行的,且是可逆的。我们可以得出所有跨越了x轴的折线总数是与从\((0,0)\)\((2n,-2)\)的折线总数。

    而后者的操作2比操作1要多\(0-(-2)=2\)次。即操作1为n-1,操作2为n+1。

  • 总数为\(\binom{2n}{n-1}\)

接下来减一下就可以发现卡特兰数的通项公式了。


本题题解:

讲了这么多,和这题有什么关系呢?

正常卡特兰数不能越过\(y=0\)线,相当于没有任何一次可以失配的机会。

本题所求的恰好m对失配,由折线法可以证明是\(\binom{2n}{n-m}-\binom{2n}{n-m-1}\)

就好像差分一样嘛!

这个推广恰好符合扩展卡特兰数,就是正解了。。(然而我考场上还是不会)


<后记>

AFO,没什么可说的

posted @ 2019-11-13 10:39  云烟万象但过眼  阅读(133)  评论(0编辑  收藏  举报