记录编号 232429 评测结果 AAAAAAAAAA
题目名称 [SDOI 2007] 兔子 最终得分 100
用户昵称 Gravatarliu_runda 是否通过 通过
代码语言 C++ 运行时间 0.019 s
提交时间 2016-03-01 12:12:49 内存使用 0.44 MiB
显示代码纯文本
#include<cstdio>
int ans[200][200];int m;
void add(int a[],int b[],int c[]){
	c[0]=a[0];
	if(b[0]>a[0])c[0]=b[0];
	for(int i=1;i<c[0];++i)c[i]=a[i]+b[i];
	for(int i=1;i<c[0];++i){
		if(c[i]>9&&i==c[0]-1)c[0]++;
		c[i+1]+=c[i]/10;
		c[i]%=10;
	}
}

void f(int n){
	if(n<=1)return;
	int i=n-1,j=n-m;
	if(j<1)j=1;
	if(ans[i][0]==0)f(i);
	if(ans[j][0]==0)f(j);
	add(ans[i],ans[j],ans[n]);
}
void print(int a[]){
	for(int i=a[0]-1;i;--i)printf("%d",a[i]);
}
int main(){
	freopen("rabbit.in","r",stdin);
	freopen("rabbit.out","w",stdout);
	int d;
	scanf("%d%d",&m,&d);
	ans[1][0]=2;ans[1][1]=1;
	f(d+1);
	print(ans[d+1]);
	fclose(stdin);fclose(stdout);
	return 0;
}