首页 > 代码库 > BZOJ 3028 食物 ——生成函数
BZOJ 3028 食物 ——生成函数
把所有东西的生成函数搞出来。
发现结果是x*(1-x)^(-4)
然后把(1-x)^(-4)求逆,得到(1+x+x^2+...)^4
然后考虑次数为n的项前的系数,就相当于选任意四个非负整数构成n的方案数。
大概就是C(n+3,3)
前面还有一项是x,所以n--即可。
然后就A掉了。
#include <cstdio> #include <cstring> #define ll long long const int inv=1668; const int md=10007; int n;char s[505]; int main() { scanf("%s",s+1); for (int i=1;i<=strlen(s+1);++i) n=(10*n+s[i]-‘0‘)%md; printf("%lld\n",((ll)n*(n+1)*(n+2)*inv)%(ll)md); }
BZOJ 3028 食物 ——生成函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。