设为首页 加入收藏

TOP

POJ3734 Blocks(生成函数)
2019-03-13 08:07:57 】 浏览:56
Tags: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}}{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;
}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇简易贪吃蛇 下一篇C++_构造函数与析构函数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目