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

HDU 3664 (水地推)

时间:2014-08-13 00:57:04      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   for   div   amp   

http://acm.hdu.edu.cn/showproblem.php?pid=3664

 

题意:给出数字n,问n的所有的排列中满足Ai>i 数字恰好为 k的排列的个数。

sl : dp

dp【n】【k】 = dp【n-1】【k】*(k+1) + dp【n-1】【k-1】*(n-1-k+1);

 

为什么? 稍微一想就知道了。

 

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #include <vector>
 5 using namespace std;
 6 const int MAX= 1000;
 7 const int MOD = 1e9+7;
 8 typedef long long LL;
 9 int dp[MAX][MAX];
10 int main() {
11     int n,k;
12     while(scanf("%d %d",&n,&k)==2) {
13         memset(dp,0,sizeof(dp));
14         for(int i=1;i<=n;i++) dp[i][0]=1;
15         for(int i=1;i<=n;i++) {
16             for(int j=1;j<=i;j++) {
17                 dp[i][j]=((LL)dp[i-1][j]*(j+1)+(LL)dp[i-1][j-1]*(i-j))%MOD;
18             }
19         }
20         printf("%d\n",dp[n][k]);
21     }
22     return 0;
23 }

24 //dp[n][k]=dp[n-1][k]*(k+1)+dp[n-1][k-1]*(n-1-k+1); 

HDU 3664 (水地推),布布扣,bubuko.com

HDU 3664 (水地推)

标签:style   blog   http   color   io   for   div   amp   

原文地址:http://www.cnblogs.com/acvc/p/3908994.html

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