SOJ3866 红色病毒II

也是指数型母函数,跟前面那道一样一样的。


AC个数之和为偶数,翻译一下就是AC个数均为奇数或者AC个数均是偶数。

写成指数型母函数就是(e^x)^2 * ((e^x+e^-x)/2)^2 + (e^x)^2 * ((e^x-e^-x)/2)^2

化简后可以得到答案的公式:2*4^(n-1)


#include <cstdio>
#define ll long long
const int mod = 1000000007;

ll pow_mod(ll x, int y)
{
    ll ret = 1;
    while (y)
    {
        if (y&1) ret = ret * x % mod;
        x = x * x % mod;
        y >>= 1;
    }
    return ret;
}

int main()
{
    int n;
    while (scanf("%d", &n) == 1)
    {
        printf("%lld\n", (2LL*pow_mod(4LL, n-1)) % mod);
    }
    return 0;
}

我真是好闲= =

你可能感兴趣的:(SOJ3866 红色病毒II)