折线法
从卡特兰数入手,卡特兰数是没有上界要求的,所以只需要对触碰到 y = − 1 y=-1 y=−1的情况去掉即可。在卡特兰数中,把折线从第一个碰到 y = − 1 y=-1 y=−1的位置开始翻折其实是一种一一映射的想法,对于所有不合法的方案都可以映射到一条到 ( 2 n , − 2 ) (2n,-2) (2n,−2)的折线,而每一条这样的折线有可以唯一映射回一条不合法的路径。
在有上界的情况,也是用翻折+映射的办法,但是需要再用到容斥。
一个比较普通的想法是把碰到 y = m y=m y=m的也按同样的方法翻折然后计数,但是这样会把即碰到 y = − 1 y=-1 y=−1又碰到 y = m y=m y=m的算重,所以需要用容斥。如果先碰到 y = m y=m