UVA 11077 Find the Permutations
2012-11-02 13:45
302 查看
/* dp[i][j]表示递推到i时,swap的次数为j时的方案数。 i要么单独形成1个循环节,这时不增加swap的次数,要么放到前i-1个数某个数的后面,从而插入到某个循环中,这样swap的次数会+1。 */ #include<stdio.h> #include<string.h> typedef unsigned long long LL; int N, K; LL dp[25][25]; void prep() { memset(dp, 0, sizeof(dp)); dp[0][0] = 1; for(int i = 1; i <= 21; i ++) for(int j = 0; j < i; j ++) { dp[i][j] = dp[i - 1][j]; if(j) dp[i][j] += dp[i - 1][j - 1] * (i - 1); } } int main() { prep(); while(scanf("%d%d", &N, &K), N) printf("%llu\n", dp [K]); return 0; }
相关文章推荐
- UVA 11077 Find the Permutations(置换+dp)
- Uva 11077 Find the Permutations [置换群 DP]
- UVa11077-Find the Permutations(dp+置换)
- UVa 11077 Find the Permutations(置换+递推)
- uva 11077 - Find the Permutations(置换)
- 【UVA 11077】 Find the Permutations (置换+第一类斯特林数)
- uva 11077 - Find the Permutations(置换+dp)
- uva11077 Find the Permutations
- UVA 11077 Find the Permutations(置换)
- UVA 11077 Find the Permutations 置换+递推
- UVA 11077 Find the Permutations 递推置换
- UVa 11077 Find the Permutations / 置换
- UVA11077 Find the Permutations
- UVA 11077 - Find the Permutations(递推)
- UVA 11077 Find the Permutations DP
- UVA - 11077 Find the Permutations (置换)
- UVA 11077 - Find the Permutations(递推)
- uva 11077 Find the Permutations 置换+递推
- UVA - 11077 Find the Permutations (置换)
- UVA 1189 - Find The Multiple