第一道URAL题 简单递推
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 using namespace std; 7 #define LL long long 8 LL dp[20][20]; 9 int main() 10 { 11 int i,j,n,k,g; 12 LL ans=0; 13 scanf("%d%d",&n,&k); 14 for(i = 0 ; i < k ; i++) 15 dp[1][i] = 1; 16 for(i = 1; i <= n ; i++) 17 { 18 for(g = 0 ; g < k ; g++) 19 { 20 if(g!=0) 21 dp[i][g]+=dp[i-1][0]; 22 for(j = 1 ; j < k ; j++) 23 { 24 dp[i][g]+=dp[i-1][j]; 25 } 26 } 27 } 28 for(i = 1 ; i < k ; i++) 29 ans+=dp[n][i]; 30 printf("%lld ",ans); 31 return 0; 32 }