URAL 1009 K-based numbers(DP递推)

时间:2023-03-09 00:55:57
URAL 1009 K-based numbers(DP递推)

点我看题目

题意 : K进制的N位数,不能有前导零,这N位数不能有连续的两个0在里边,问满足上述条件的数有多少个。

思路 : ch[i]代表着K进制的 i 位数,不含两个连续的0的个数。

当第 i 位为0时,那么第i-1位不为0有(K-1)种放法,(k-1)*f[i-2]

当第 i-1 位为0时,第 i 位有(k-1)种放法,(k-1)*f[i-1]

 #include <stdio.h>
int main()
{
long long ch[];
int m,n;
while(~scanf("%d %d",&m,&n))
{
int i ;
ch[]=n-;
ch[]=n*(n-);
for(i=; i<=m; i++)
{
ch[i]=ch[i-]*(n-)+ch[i-]*(n-);
}
printf("%lld\n",ch[m]);
}
return ;
}