#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define ll long long
using namespace std;
ll f[];
ll g[];
ll qpow(ll a,ll b){
ll ans=;
while(b){
if (b&==)ans=ans*a;
a*=a;
b/=;
}
return ans;
}
void init(){
f[]=f[]=f[]=;
g[]=;g[]=;g[]=;
for (int i=;i<=;i++){
ll sum=;
for(int j=;j<=i-;j++){
sum=sum+g[j-]*qpow(,i-j-);
}
f[i]=qpow(,i-)+sum;
g[i]=qpow(,i)-f[i];
}
}
int main(){
init();
int n;
while(~scanf("%d",&n)&&n){
printf("%lld\n",f[n]);
}
return ;
}
相关文章
- UVA -580 组合数学
- 【BZOJ4403】序列统计(组合数学,卢卡斯定理)
- (组合数学3.1.2.2)POJ 2084 Game of Connections(卡特兰数公示的实现)
- lucas定理,组合数学问题
- [Codeforces722E] Research Rover (dp+组合数学)
- Educational Codeforces Round 62 (Rated for Div. 2)E(染色DP,构造,思维,组合数学)
- Codeforces 1093D(染色+组合数学)
- UVa 11461 - Square Numbers【数学,暴力】
- 组合数学笔记-特殊计数数列
- 【BZOJ5020】【THUWC2017】在美妙的数学王国中畅游(Link-Cut Tree,组合数学)