void-man

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

给出一个进制,以及它的位数,让你求他总共有多少种这个数

最后发现找规律,跟斐波那契差不多的规律,直接打表过了

View Code
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <iostream>
5 #include <algorithm>
6 #include <queue>
7 #include <stack>
8 #include <math.h>
9
10  using namespace std;
11
12  const int MAX = 20;
13  long long dp[MAX][MAX];
14 int main()
15 {
16 int n,k;
17 for(int i=2; i<=18; i++)
18 {
19 dp[i][1] = i-1;
20 dp[i][2] = (i-1)*i;
21 }
22 for(int i=2; i<=10; i++)
23 for(int k=3; k<=18; k++)
24 dp[i][k] = (i-1)*(dp[i][k-1] + dp[i][k-2]);
25 while( ~scanf("%d%d",&n,&k) )
26 {
27 printf("%lld\n",dp[k][n]);
28 }
29 return 0;
30 }
posted on 2011-05-07 16:50  void-man  阅读(144)  评论(0)    收藏  举报