求解核电站问题
小野 2008-03-25 03:21:48 Description
一个核电站有N个放核物质的坑,坑排列在一条直线上。
如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。
任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数
Input
该题有多组测试数据,每组数据一行,两个正整数N,M( 1<N≤50,2≤M≤5)
Output
每组数据只输出一个正整数S,表示方案总数。
Sample Input
4 3
Sample Output
13
以下是我的代码,但总是超时,请高手帮忙优化一下,这个是要打表吗?怎么打表?不会。。。。请高手指点
#include<stdio.h>
int n,m;
__int64 f(int a);
__int64 s[60];
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
printf("%I64d\n",f(n));
}
return 0;
}
__int64 f(int a)
{
if((a==-5) || (a==-4) ||(a==-3) ||( a==-2) )
return 0;
if((a==-1) || (a==0) )
return 1;
s[a]= 2*f(a-1)-f(a-1-m);
return s[a];
}