P2012 拯救世界2(指数型生成函数)

P2012 拯救世界2

三种基因,我们分别列出其生成函数:
F(x)=∑n≥0xnn!=exG(x)=∑n≥0x2n+1(2n+1)!=12(∑n≥0xnn!−∑n≥0(−1)nxnn!)=12(ex−e−x)H(x)=∑n≥0x2n(2n)!=12(∑n≥0xnn!+∑n≥0(−1)nxnn!)=12(ex+e−x)F(x) = \sum_{n \geq 0} \frac{x ^ n}{n!} = e ^ x\\ G(x) = \sum_{n \geq 0} \frac{x ^{2n + 1}}{(2n + 1)!} = \frac{1}{2}\left(\sum_{n \geq 0} \frac{x ^ n}{n!} - \sum_{n \geq 0} (-1) ^ n \frac{x ^ n}{n !} \right) = \frac{1}{2} \left(e ^ x - e ^ {-x}\right)\\ H(x) = \sum_{n \geq 0} \frac{x ^{2n}}{(2n)!} = \frac{1}{2}\left(\sum_{n \geq 0} \frac{x ^ n}{n!} + \sum_{n \geq 0} (-1) ^ n \frac{x ^ n}{n !} \right) = \frac{1}{2}\left(e ^ x + e ^{-x}\right)\\ F(x)=n0n!xn=exG(x)=n0(2n+1)!x2n+1=21(n0n!xnn0(1)nn!xn)=21(exex)H(x)=n0(2n)!x2n=21(n0n!xn+n0(1)nn!xn)=21(ex+ex)

A(x)=(F(x)G(x)H(x))4=1256(e12x−4e8x+64x+e−4x−4)对上面进行泰勒展开得到第n项的系数再乘上n!就是答案了ans[n]=1256(12n−4×8n+6×4n+(−4)n)A(x) = \left(F(x)G(x)H(x)\right) ^ 4 = \frac{1}{256}\left(e ^{12x} - 4e^{8x} + 6^{4x} + e ^{-4x} - 4\right) \\ 对上面进行泰勒展开得到第n项的系数再乘上n!就是答案了\\ ans[n] = \frac{1}{256}\left(12 ^ n - 4 \times 8 ^ n + 6 \times 4 ^n + (-4) ^ n\right)\\ A(x)=(F(x)G(x)H(x))4=2561(e12x4e8x+64x+e4x4)nn!ans[n]=2561(12n4×8n+6×4n+(4)n)

#include <bits/stdc++.h>using namespace std;const int mod = 1e9, phi = 1e8;int quick_pow(int a, int n) {int ans = 1;while (n) {if (n & 1) {ans = 1ll * ans * a % mod;}a = 1ll * a * a % mod;n >>= 1;}return ans;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);long long n;while (scanf("%lld", &n) && n) {if (n < 4) {puts("0");}else if (n < phi) {printf("%lld\n", (1ll * 81 * quick_pow(12, n - 4) % mod - quick_pow(8, n - 2) + 1ll *  6 * quick_pow(4, n - 4) + quick_pow(-4, n - 4) + mod) % mod);}else {int ans = 1ll * 81 * quick_pow(12, (n - 4) % phi + phi) % mod;ans = (ans - quick_pow(8, (n - 2) % phi + phi) + mod) % mod;ans = (ans + 1ll * 6 * quick_pow(4, (n - 4) % phi + phi) % mod) % mod;int res = quick_pow(4,(n - 4) % phi + phi);if((n - 4) & 1){ans = (ans - res + mod) % mod;}else {ans = (ans + res) % mod;}printf("%d\n", ans);}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源导入导出通用库Magicodes.ExporterAndImporter发布

导入导出通用库 Magicodes.ExporterAndImporter为心莱团队封装的导入导出通用库&#xff0c;并且仍在跟随项目不断地打磨。GitHub地址&#xff1a;https://github.com/xin-lai/Magicodes.ExporterAndImporter目录特点相关官方Nuget包导出 Demo普通导出特性导出列头处理或者多语…

第一个错误的版本

题目描述 你是产品经理&#xff0c;目前正在带领一个团队开发新的产品。不幸的是&#xff0c;你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的&#xff0c;所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n]&#xff0c;你…

P4705 玩游戏(生成函数,多项式ln)

P4705 玩游戏 有ansk∑i1n∑j1m(aibj)knm先舍弃nm不管ansk∑r0k∑i1n∑j1mCkrairbjk−r∑r0k∑i1n∑j1mk!r!(k−r)!airbjk−rk!∑r0k(1r!∑i1nair)(1(k−r)!∑j1mbjk−r)不难发现这就是一个卷积的形式了&#xff0c;但是我们现在还不知道∑i1nair,∑i1mbir,(r∈[0,k])设A(x)为∑…

爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正整数。 示例 1&#xff1a; 输入&#xff1a; 2 输出&#xff1a; 2 解释&#xff1a; 有两种方法可以爬到楼顶…

netcore 中的动态代理与RPC实现(微服务专题)

一、关于RPC的调用1. 调用者&#xff08;客户端Client&#xff09;以本地调用的方式发起调用&#xff1b;  2. Client stub&#xff08;客户端存根&#xff09;收到调用后&#xff0c;负责将被调用的方法名、参数等打包编码成特定格式的能进行网络传输的消息体&#xff1b; …

多项式除法,多项式取模

多项式除法 给定一个nnn次多项式F(x)F(x)F(x)和mmm次多项式G(x)G(x)G(x)&#xff0c;要求R(x),Q(x)R(x), Q(x)R(x),Q(x)&#xff0c;满足F(x)R(x)G(x)Q(x)F(x) R(x)G(x) Q(x)F(x)R(x)G(x)Q(x)。 R(x)R(x)R(x)是一个n−mn - mn−m阶多项式&#xff0c;Q(x)Q(x)Q(x)是一个小于…

[翻译] .NET Core 3.0 Preview 9 发布

原文: Announcing .NET Core 3.0 Preview 9今天&#xff0c;我们宣布推出 .NET Core 3.0 Preview 9。就像 Preview 8 一样&#xff0c;我们专注于打磨 .NET Core 3.0 的最终版本&#xff0c;而不是添加新功能。如果这些最终版本看起来不像早期预览版那么令人兴奋&#xff0c;我…

南昌网络赛E Interesting Series

Interesting Series 可求得通项Fnan−1a−1F_n \frac{a ^ n - 1}{a - 1}Fn​a−1an−1​&#xff0c;一个等比数列的前nnn项和&#xff0c;value(s)Fsum(s)value(s) F_{sum(s)}value(s)Fsum(s)​。 题目要我们求的是Answer(K)∑s∈subsetofSand∣s∣Kvalue(s)Answer(K) \s…

谈谈“学习”这件事儿

曾经有童鞋在我博客留言&#xff1a;楼主你是如何学习的&#xff0c;肿么那么牛逼&#xff08;注&#xff1a;真不牛逼&#xff0c;只不过我讲的你刚好不知道&#xff0c;在你心中就形成了好牛逼的样子&#xff09;曾经也有童鞋加我好友&#xff0c;开头第一句则是&#xff1a;…

牛客练习赛50 F tokitsukaze and Another Protoss and Zerg

tokitsukaze and Another Protoss and Zerg 考虑生成函数&#xff0c;每一场的生成函数为∑j1b[i]Cb[i]j∑j1a[i]Ca[i]jxj\sum\limits_{j 1} ^{b[i]}C_{b[i]} ^ j \sum\limits_{j 1} ^{a[i]}C_{a[i]} ^{j} x ^ jj1∑b[i]​Cb[i]j​j1∑a[i]​Ca[i]j​xj&#xff0c; 进一步…

持续集成之应用k8s自动部署

持续集成之应用k8s自动部署Intro上次我们提到了docker容器化及自动化部署[1]&#xff0c;这仅仅适合个人项目或者开发环境部署&#xff0c;如果要部署到生产环境&#xff0c;必然就需要考虑很多因素&#xff0c;比如访问量大了如何调整部署&#xff0c;如何更好的应对大并发的情…

Fizz Buzz

题目描述 写一个程序&#xff0c;输出从 1 到 n 数字的字符串表示。 如果 n 是3的倍数&#xff0c;输出“Fizz”&#xff1b; 如果 n 是5的倍数&#xff0c;输出“Buzz”&#xff1b; 3.如果 n 同时是3和5的倍数&#xff0c;输出 “FizzBuzz”。 示例&#xff1a; n 15,返…

多项式全家桶(半)

快速傅里叶变换(FFT) 多项式表示 系数表示法&#xff1a; 一个nnn次多项式可以用n1n 1n1个系数表示出来&#xff1a;f(x)a0a1xa2x2⋯an−1xn−1anxnf(x) a_0 a_1 x a_2 x ^ 2 \dots a_{n - 1} x ^{n- 1} a_n x ^nf(x)a0​a1​xa2​x2⋯an−1​xn−1an​xn。 点值表示…

持续集成之应用容器化及自动化部署

通过 Azure Pipelines 实现持续集成之docker容器化及自动化部署IntroAzure DevOps Pipeline 现在对于公开的项目完全免费&#xff0c;这对于开源项目来讲无疑是个巨大的好消息&#xff0c;在 Github 的 Marketplace 里有个 Azure Pipeline&#xff0c;就是微软的 Azure DevOps …

最小栈

题目描述 设计一个支持 push&#xff0c;pop&#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 示例: MinStack minStack new …

持续集成之 Nuget 进阶

持续集成之 Nuget 进阶Intro之前介绍了一篇基于 Azure pipeline 的 nuget 包的持续集成配置&#xff0c;但是比较粗糙&#xff0c;这里介绍一下结合 Cake 实现更优雅的 nuget 包发布流程。实现目标&#xff1a;分支(除master/preview)有代码 push 或者 pr 时 自动 buildpreview…

#3771. Triple(生成函数 + 容斥)

#3771. Triple 考虑只有一个损失时&#xff0c;损失值的生成函数为A(x)A(x)A(x)。 如果不考虑无序方案&#xff0c;有两个损失的生成函数为B(x)A(x)A(x)B(x) A(x)A(x)B(x)A(x)A(x)&#xff0c;同理有三个的时候C(x)A(x)A(x)A(x)C(x) A(x)A(x)A(x)C(x)A(x)A(x)A(x)。 考虑如…

计数质数

题目描述 统计所有小于非负整数 n 的质数的数量。 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。解法 思路1&#xff1a;暴力法 /***暴力法* 时间复杂度O(n2)* 空间复杂度(O(1))* param n* return*/ public int countPrimes(int n) {if(n&…

做“是非题”的正确姿势

这里是Z哥的个人公众号每周五11&#xff1a;45 按时送达有时也会有感而发&#xff0c;来加个餐&#xff5e;我的第「107」篇原创敬上大家好&#xff0c;我是Z哥。这两天中国男篮的事&#xff0c;让我有感而发。不知道你有没有留意到&#xff0c;我们身边总有类似下面这样的事情…

3的幂

题目描述 给定一个整数&#xff0c;写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true示例 2: 输入: 0 输出: false示例 3: 输入: 9 输出: true示例 4: 输入: 45 输出: false进阶&#xff1a; 你能不使用循环或者递归来完成本题吗&#xff1f; 解法1&a…