您的位置:首页 > 其它

【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合

2018-04-17 22:10 302 查看

【题意】[COGS 2287][HZOI 2015]疯狂的机器人

【算法】FFT+卡特兰数+排列组合

【题解】先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式。

设C(n)表示第n/2个卡特兰数,当n为奇数时为0,即:

$$C_n=\binom{n}{\frac{n}{2}}-\binom{n}{\frac{n}{2}-1},n\%2=0$$

卡特兰数可以通过预处理阶乘和逆元后O(1)计算。

设f
表示走n步回到原点的操作序列数,那么答案要求所有f[i],通过枚举纵向行走的数量,很容易得到:

$$f
=\sum_{i=0}^{n}C_i*C_{n-i}*\binom{n}{i}=n!*\sum_{i=0}^{n}\frac{C_i}{i!}*\frac{C_{n-i}}{(n-i)!}$$

卷积,复杂度O(n log n)。

最后答案是:

$$ans=\sum_{i=0}^{n}f[i]*\binom{n}{i}$$

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: