标签:不容易系列之4考新郎 算法 acm java
2 2 2 3 2
1 3
分析:这是一道递推、错排题。
1、错排思路和上一道题[hdu-2048] 神、上帝以及老天爷一样。
2、需要注意的是,这不是单纯的 m 个人错排,而是要从 n 个人中选取 m 个人错排。这也就是一个组合公式。
import java.util.Scanner; public class Main { static long[] factorial = new long[21];// 存储1—20的阶乘结果 static long[] errors = new long[21];// 存储m(1<m<=20)个人的错排数 static { factorial[0] = factorial[1] = 1; for (int i = 2; i < 21; i++) { factorial[i] = factorial[i - 1] * i; } errors[1] = 0; errors[2] = 1; for (int i = 3; i < 21; i++) { errors[i] = (i - 1) * (errors[i - 1] + errors[i - 2]); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int c = scanner.nextInt(); while (c-- != 0) { int n = scanner.nextInt(); int m = scanner.nextInt(); long cnm = factorial[n] / (factorial[n - m] * factorial[m]); System.out.println(errors[m] * cnm); } } }
[hdu-2049] 不容易系列之(4)——考新郎,布布扣,bubuko.com
标签:不容易系列之4考新郎 算法 acm java
原文地址:http://blog.csdn.net/u011506951/article/details/25386687