题目描述

明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应
该带一些什么东西。理所当然的,你当然要帮他计算携带N件物品的方案数。他这次又准备带一些受欢迎的食物,
如:蜜桃多啦,鸡块啦,承德汉堡等等当然,他又有一些稀奇古怪的限制:每种食物的限制如下:
承德汉堡:偶数个
可乐:0个或1个
鸡腿:0个,1个或2个
蜜桃多:奇数个
鸡块:4的倍数个
包子:0个,1个,2个或3个
土豆片炒肉:不超过一个。
面包:3的倍数个
注意,这里我们懒得考虑明明对于带的食物该怎么搭配着吃,也认为每种食物都是以‘个’为单位(反正是幻想嘛
),只要总数加起来是N就算一种方案。因此,对于给出的N,你需要计算出方案数,并对10007取模。

输入

输入一个数字N,1<=n<=10^500

输出

如题

样例输入

输入样例1
1
输入样例2
5

样例输出

输出样例1
1
输出样例2
35
对于每种食物的限制,我们可以用多项式形式来表示,$a_{i}x^i$表示这种食物取$i$个时的方案数是$a_{i}$。
那么对于每种食物,我们可以列出对应多项式,答案就是将所有多项式相乘后$x^n$的系数。
承德汉堡:$\sum\limits_{i=0}^{+\infty}x^{2i}=\frac{1}{1-x^2}$
可乐:$1+x$
鸡腿:$1+x+x^2=\frac{x^3-1}{x-1}$
蜜桃多:$\sum\limits_{i=0}^{+\infty}x^{2i+1}=\frac{x}{1-x^2}$
鸡块:$\sum\limits_{i=0}^{+\infty}x^{4i}=\frac{1}{1-x^4}$
包子:$1+x+x^2+x^3=\frac{x^4-1}{x-1}$
土豆片炒肉:$1+x$
面包:$\sum\limits_{i=0}^{+\infty}x^{3i}=\frac{1}{1-x^3}$
由等比数列求和公式即可推得等式右边的部分,那么将所有生成函数都乘起来就能得到:$\frac{x}{(1-x)^4}$
根据泰勒展开可以知道$\frac{1}{(1-x)^m}=(1+x+x^2+x^3+……)^m$,求第$n$项系数就是$C_{m+n-1}^{m-1}$
乘上$x$就相当于把系数都右移一位,即求第$n-1$项系数为$C_{m+n-2}^{m-1}$,将$m=4$代入,那么答案就是$C_{n+2}^{3}$。

#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<bitset>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define mod 10007
using namespace std;
int ans;
int n;
char s[1000];
ll quick(int x,int y)
{ll res=1ll;while(y){if(y&1){res=res*x%mod;}y>>=1;x=1ll*x*x%mod;}return res;
}
int main()
{scanf("%s",s+1);int len=strlen(s+1);for(int i=1;i<=len;i++){n=n*10+s[i]-'0';n%=mod;}ans=n*(n+1)%mod;ans=ans*(n+2)%mod;ans=ans*quick(6,mod-2)%mod;ans=(ans%mod+mod)%mod;printf("%d",ans);
}

转载于:https://www.cnblogs.com/Khada-Jhin/p/10487643.html

BZOJ3028食物——生成函数+泰勒展开相关推荐

  1. bzoj3028 食物 生成函数+广义二项式定理

    首先我们有一些函数推收敛式的套路. (这些是知名伪证,结论是对的,但是证明过程是胡扯)比如对于y=1+x+x2y=1+x+x^2y=1+x+x2 ,我们知道xy=x+x2+x3xy=x+x^2+x^3 ...

  2. bzoj3028 食物 (普通型生成函数)

    Description 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数.他这 ...

  3. 生成函数 Bzoj3028食物 推公式

    https://www.cnblogs.com/ihopenot/p/6618069.html https://blog.csdn.net/clove_unique/article/details/7 ...

  4. BZOj 3208 食物 生成函数+广义二项式定理

    曾经搞过几天的生成函数,也没做几道题,后来放弃了,今天讲了生成函数和背包问题的结合,趁着脑子清醒整理一下: 题目描述: 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!  我们暂且不讨论他 ...

  5. BZOJ 3028: 食物 [生成函数 隔板法 | 广义二项式定理]

    3028: 食物 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 497  Solved: 331 [Submit][Status][Discuss] ...

  6. 黑暗爆炸OJ 3028. 食物 生成函数

    传送门 文章目录 题意: 思考 题意: 思考 考虑将每个条件转换成生成函数: (1)f1(x)=1+x2+...=11−x2(1)f_1(x)=1+x^2+...=\frac{1}{1-x^2}(1) ...

  7. bzoj 3208 食物(生成函数)

    先推一下生成函数 承德汉堡:偶数个 1 + x 2 + x 4 + x 6 + . . . . . . = 1 1 − x 2 1+x^2+x^4+x^6+...... =\frac{1}{1-x^2 ...

  8. BZOJ3028 食物

    Orz PoPoQQQ 母函数总算是搞定了...但是下面的Taylor展开还不会... 1 /***************************************************** ...

  9. bzoj 3028 食物——生成函数

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3028 把式子写出来,化一化,变成 x / ((1-x)^4) ,变成几个 sigma 相乘的 ...

最新文章

  1. 大小端存储模式的理解和判断
  2. [React Native Android安利系列]搭建React Native Android环境
  3. 理解熵:机器学习的黄金标准
  4. 2018全球科技创新报告
  5. beeline执行sql语句_由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考...
  6. python怎么新开一行_极简主义的践行者:一行python可以怎么玩?
  7. 基于Struts2的供求信息网设计(三)
  8. 美团点评APP在移动网络性能优化的实践,吊打面试官系列!
  9. mysql 举例_MySQL 语句举例(一)
  10. 用express、mongodb、nodejs开发简单的登陆
  11. 02-橄榄球 VS 软件
  12. GoF的23种设计模式
  13. html工资计算页面模板,工资计算.html
  14. 4-PSK、4-DPSK、8-QAM信号调制
  15. 为什么要学好数据结构和算法
  16. 即时聊天软件与开放平台
  17. jupyter 阿里云服务器配置 远程连接 开机自动启动服务
  18. 第六周组会摘要工作计划与分工
  19. 电力系统强大的Gurobi 求解器的学习(PythonMatlab)
  20. IT咨询业发展三道坎

热门文章

  1. ajaxfileupload带参数上传文件
  2. Ubuntu 12.04(64位)下载并编译 Android 4.1 源码[只有2条命令]
  3. SQL SERVER 2008 数据恢复错误的解决步骤
  4. OpenCV常见的优化方法和技巧总结
  5. Java并发编程—schedule方法和scheduleAtFixedRate方法的区别
  6. 多重for循环如何提速
  7. CodeForces - 2B The least round way
  8. 【Alpha】第一次Daily Scrum Meeting
  9. 如何在c语言中源文件调用另一个源文件的函数
  10. Hql 中 dao 层 以及daoimpl 层的代码,让mvc 模式更直观简洁