UOJ#424. 【集训队作业2018】count
题解:
法一:
卡特兰数大融合
数本质不同的笛卡尔树,且任意一个叶子到根作为左儿子次数+1<=m
二叉树转化为括号:根用括号把左儿子整个包起来,然后放右儿子
这样,合法限制变成了,用栈处理左括号右括号,栈内任意时刻左括号不能超过k个。
统计这样的合法括号序列个数
考虑从(0,0)往(n,n)走
不能经过y=x-1和y=x+m+1的方案数
枚举折线的经过情况进行容斥
法二:
简单暴力的多项式:
二维生成函数
二维的生成函数,把一维放在外面
然后递推。
可以发现f=a/b的形式,然后暴力对应分子分母相等,得到a,b的线性递推式。
矩阵乘法
IDFT的trick是,直接把转移矩阵的x换成$w_N^i$最后再插值。
upda:多亏这个不用取mod,不然肯定不能差值的。项数太多了
最后还是要多项式求逆。