博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3028:食物
阅读量:5234 次
发布时间:2019-06-14

本文共 1248 字,大约阅读时间需要 4 分钟。

生成函数的模板题


前置知识:

\[ \sum_{i=0}^{+\infty}x^i=\frac{1}{1-x} \]
其实就是等比数列求和公式,这就是公比为\(x\)的等比数列,然后取\(x\in(-1,1)\)

也就是你只要会等比数列求和就行了

也就有

\[ (1+x+x^2+x^3+x^4+...)^k=(1-x)^k \]
然后还有一个结论,就是\((1+x+x^2+x^3+x^4+...)^k\)的第\(i\)项系数就是\(\binom{i+k-1}{k-1}\)

证明的话插板法就好了


承德汉堡:\(\frac{1}{1-x^2}\)

可乐:\(\frac{1-x^2}{1-x}\)

鸡腿:\(\frac{1-x^3}{1-x}\)

蜜桃多:\(\frac{x}{1-x^2}\)

鸡块:\(\frac{1}{1-x^4}\)

包子:\(\frac{1-x^4}{1-x}\)

土豆片炒肉:\(\frac{1-x^2}{1-x}\)

面包:\(\frac{1}{1-x^3}\)

然后乘起来就是\(\frac{x}{(1-x)^4}\)

\[ f(x)=\frac{x}{(1-x)^4}\\ f(x)=x(1+x+x^2+x^3+...)^4 \]
那么我们要求的也就是\(f(x)\)的第\(n-1\)项系数,也就是\(\binom{n+2}{3}\)

实现的话其实也没必要写高精度,读入的时候按位读,边读边模就好了

代码:

#include
#include
#include
#include
using namespace std;void read(int &x) { char ch; bool ok; for(ok=0,ch=getchar(); !isdigit(ch); ch=getchar()) if(ch=='-') ok=1; for(x=0; isdigit(ch); x=x*10+ch-'0',ch=getchar()); if(ok) x=-x;}#define rg registerconst int maxn=1e3+10,mod=10007,inv=1668;int n,len,m=1;char a[maxn];int main(){ scanf("%s",a+1),len=strlen(a+1); for(rg int i=len;i;i--){ n=(n+m*(a[i]-'0'))%mod; m=m*10%mod; } printf("%d\n",n*(n+1)%mod*(n+2)%mod*inv%mod);}

转载于:https://www.cnblogs.com/lcxer/p/10840216.html

你可能感兴趣的文章
2016 - 1 -19 初学HTML5 第一天
查看>>
mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间...
查看>>
对于python的初步认识和学习期望
查看>>
18. 4Sum
查看>>
OC面向对象
查看>>
web前端之CSS简介
查看>>
【剑指offer】面试题八:旋转数组的最小数字
查看>>
【剑指offer】面试题23:从上往下打印二叉树
查看>>
ZOJ Problem Set - 3708 Density of Power Network
查看>>
MYSQL关键字的使用
查看>>
[刘阳Java]_了解BeanFactory_第4讲
查看>>
修改Linux内核参数提高Nginx服务器并发性能
查看>>
字符串谜题
查看>>
善良有什么用? (张鑫旭)
查看>>
Font-Spider 一个神奇的网页中文字体工具,就是这么任性
查看>>
python编码encode和decode
查看>>
Django 练习班级管理系统四 -- 编辑班级
查看>>
java的自增和自减
查看>>
throw 和throws 的区别
查看>>
Java 访问控制符
查看>>