您的位置:首页 > 其它

HDOJ 1165 Eddy's research II(数学)

2013-12-25 13:09 459 查看
推 Ackermann 的通项,刚开始直接搞,果断 MLE 了。。。

高中数列知识即可

#include <cstdio>
using namespace std;

const int maxm = 4, maxn = 1001000;
typedef long long LL;
LL ak[maxm][maxn];

LL mypow(LL x)
{
LL ret = 1;
LL k = 2;
while(x) {
if(x & 1) ret *= k;
k *= k;
x /= 2;
}
return ret;
}

int main()
{
int m, n ;
for(int i = 0; i < maxn; i++)
ak[0][i] = i + 1;
for(int i = 0; i < maxn; i++)
ak[1][i] = i + 2;
for(int i = 0; i < maxn; i++)
ak[2][i] = 2 * i + 3;
for(int i = 0; i < 25; i++)
ak[3][i] = mypow(i+3) - 3;
while(~scanf("%d%d", &m, &n))
printf("%lld\n", ak[m]
);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: