c/c++语言开发共享POJ3734 Blocks(生成函数)

题意 “链接” 长度为$n$的序列,用红黄蓝绿染色,其中红黄只能是偶数,问方案数 Sol 生成函数入门题 任意的是$e^x$,偶数的是$frac{e^x + e^{ x}}{2}$ 最后化完是$frac{e^{4x} + 2e^{2x}+1}{4} = frac{4^n+2 2^{n+1}}{ …


题意

长度为(n)的序列,用红黄蓝绿染色,其中红黄只能是偶数,问方案数

sol

生成函数入门题

任意的是(e^x),偶数的是(frac{e^x + e^{-x}}{2})

最后化完是(frac{e^{4x} + 2e^{2x}+1}{4} = frac{4^n+2 * 2^{n+1}}{4})((frac{1}{4}))相当于常数项

#include<iostream> #include<cstdio> using namespace std; const int mod = 10007; int fp(int a, int p) {     int base = 1;     while(p) {         if(p & 1) base = 1ll * base * a % mod;         a = 1ll * a * a % mod; p >>= 1;     }     return base; } void solve() {     int n; cin >> n;     cout << 1ll * (fp(4, n) + 2ll * fp(2, n) % mod) % mod * fp(4, mod - 2) % mod << 'n'; } int main() {     int t; cin >> t;     for(; t--; solve());     return 0; }

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/604827.html

(0)
上一篇 2021年5月12日
下一篇 2021年5月12日

精彩推荐