您的位置:首页 > 其它

HDU's ACM 2065 "红色病毒"问题

2014-11-18 22:16 344 查看
原题链接:HDU's ACM 2065 "红色病毒"问题

分析:这是指数型母函数的第一滴血,可参考一般型母函数:HDU's ACM 1028 Ignatius and the Princess III,设g(x) = (1 + x^2/2! +
x^4/4! + x^6/^! + ...) * ( 1 + x/1! + x^2/2! + x^3/3! +...),由无穷级数e^x = ∑x^k/k!,得x^n的系数为4^(n-1)+2^(n-1)

注意:其中N的值可以高达约2^64,要使用long long,scanf("%I64d",...)(I am handsome!的I),还需使用快速幂(待续介绍)。

AC Code:

<span style="font-family:Microsoft YaHei;font-size:14px;">#include <stdio.h>

#define MODER 100

int QPow(int base, long long pow)
{
int res = 1;

if(pow == 0)
return 1;

base %= MODER;
while(pow) {
if(pow&1) {
res = (res*base)%MODER;
}
base *= base;
base %= MODER;
pow >>= 1;
}

return res%MODER;
}

int main()
{
int T;
long long N;
int i;
while(scanf("%d", &T) == 1 && T) {
for(i=1;i<=T;++i) {
scanf("%I64d", &N);
printf("Case %d: %d\n", i, (QPow(4, N-1) + QPow(2, N-1)) % MODER);
}
printf("\n");
}
return 0;
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm 杭电 算法 母函数