访问量很大的说~THX
刚开始读错题了,不允许有2个连续的0,屡屡WA,后来看discuss,发现了个精妙的解法
 1#include <iostream.h>;
 2
 3int main()
 4{
 5long n,k,i;
 6long f[30];
 7cin>>n>>k;
 8f[0]=k-1;
 9f[1]=k*f[0];
10for(i=2;i<n;i++) f[i]=(k-1)*(f[i-1]+f[i-2]);
11cout<<f[n-1];
12return 0;
13}
其递推关系的精华大概就是:
定义的f[0],f[1]都是没有两个连续的0,
f[i]=(k-1)*(f[i-1]+f[i-2]);
也就是说用1..K这K-1个数,后面接上长度为N-1的那些或者可以接上长度为N-2的那些,差一位,用0补足。
精妙,精妙。