HDU 2583 permutation

题目网站

HDU 2583 permutation

Problem Description
Permutation plays a very important role in Combinatorics. For example ,1 2 3 4 5 and 1 3 5 4 2 are both 5-permutations. As everyone's known, the number of n-permutations is n!. According to their magnitude relatives ,if we insert the sumbols "<" or ">"between every pairs of consecutive numbers of a permutations,we can get the permutations with symbols. For example,1 2 3 4 5 can be changed to 1<2<3<4<5, 1 3 5 4 2 can be changed to 1<3<5>4>2. Now it's yout task to calculate the number of n-permutations with k"<"symbol. Maybe you don't like large numbers ,so you should just geve the result mod 2009.
 

Input
Input may contai multiple test cases.
Each test case is a line contains two integers n and k .0<n<=100 and 0<=k<=100.
The input will terminated by EOF.
 

Output
The nonegative integer result mod 2009 on a line.
Sample Input

5 2

 

Sample Output

66
题意为告诉我们n个排列求其中含有k个'<'的排列数目mod2009是多少

思路:开始2了,都想到边上了给成功绕过去了
设dp[i][j]表示的是i个排列有k个<
设前N-1个的情况已经全部知道
则对于N,k个<来说就是有
1:前N-1个的k个将N放到最左边以及a<b和a<n>b,所以前dp[i-1][j]的情况乘以可以k的个数加1
2:对于前N-1个的k-1个有a>b
插入N:a<N>b增加了一个<故有
方程dp[i][j]=dp[i-1][j]*(j+1)+dp[i-1][j-1]*(i-j);

代码如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值