生成函数
生成函数
生成函数是一种将一个序列映射成一个多项式的方式,具体而言,对于无限/有限序列
生成函数可以用于解决一些计数问题,它可以利用乘法原理。
例如有
对于
对于
对于
乘起来,展开后对应的几次项系数就是拼凑出来的方案,例如有项
当然上面是有限的情况,可以是无限的。
小应用
求解
这个已经很经典了,令
转化为有
而用生成函数:
每个
所以总的生成函数为
[例题]食物
- 承德汉堡:偶数个。
- 可乐:
个或 个。
- 鸡腿:
个, 个或 个。
- 蜜桃多:奇数个。
- 鸡块:
的倍数个。
- 包子:
个, 个, 个或 个。
- 土豆片炒肉:不超过一个。
- 面包:
的倍数个。
接下来乘起来消消乐可得
生成函数为
要求取到
对应高精度,没有必要,读入时乘加时模即可(相当于把数拆解成了
AC
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/17589760.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步