码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 2512 一卡通大冒险

时间:2014-07-27 22:26:29      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   art   

我感觉这更像个数学问题。

dp[i][j]表示将i件物品分成j组的方案数。

状态转移方程:

dp[i][j] = dp[i-1][j-1] + j * dp[i-1][j];

将i张卡分成j组可以有之前两种情况得来:i-1张卡分成j-1组,只要将第i张卡独立分成一组就行了,或者是i-1张卡分成j组,第i张卡随便插入哪一组都符合条件。

bubuko.com,布布扣
 1 //#define LOCAL
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 using namespace std;
 6 
 7 const int maxn = 2005;
 8 int dp[maxn][maxn];
 9 
10 int main(void)
11 {
12     #ifdef LOCAL
13         freopen("2512in.txt", "r", stdin);
14     #endif
15 
16     int i, j;
17     for(i = 1; i <= 2000; ++i)
18     {
19         dp[i][1] = 1;
20         dp[i][i] = 1;
21     }
22     for(i = 2; i <= 2000; ++i)
23         for(j = 2; j < i; ++j)
24             dp[i][j] = (dp[i-1][j-1] + j * dp[i-1][j]) % 1000;
25 
26     int n, num, sum;
27     scanf("%d", &n);
28     while(n--)
29     {
30         scanf("%d", &num);
31         sum = 0;
32         for(i = 1; i <= num; ++i)
33             sum = (sum + dp[num][i]) % 1000;
34         printf("%d\n", sum);
35     }
36     return 0;
37 }
代码君

 

HDU 2512 一卡通大冒险,布布扣,bubuko.com

HDU 2512 一卡通大冒险

标签:style   blog   http   color   os   io   for   art   

原文地址:http://www.cnblogs.com/AOQNRMGYXLMV/p/3871458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!