Light oj 1005

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1005

纸上画一下,找了一下规律,Ank*Cnk.

 1 //#pragma comment(linker, "/STACK:102400000, 102400000")
 2 #include <algorithm>
 3 #include <iostream>
 4 #include <cstdlib>
 5 #include <cstring>
 6 #include <cstdio>
 7 #include <vector>
 8 #include <cmath>
 9 #include <ctime>
10 #include <list>
11 #include <set>
12 #include <map>
13 using namespace std;
14 typedef long long LL;
15 typedef pair <int, int> P;
16 const int N = 1e5 + 5;
17 
18 LL Anm(LL n, LL m) {
19     LL ans = 1;
20     for(LL i = n; i >= n - m + 1; --i) {
21         ans = ans * i;
22     }
23     return ans;
24 }
25 
26 int main()
27 {
28     int t;
29     LL n, k;
30     scanf("%d", &t);
31     for(int ca = 1; ca <= t; ++ca) {
32         scanf("%lld %lld", &n, &k);
33         printf("Case %d: ", ca);
34         if(k > n) {
35             printf("0
");
36             continue;
37         }
38         LL ans = Anm(n, k);
39         LL temp = ans;
40         for(LL i = k; i >= 2; --i) {
41             temp /= i;
42         }
43         printf("%lld
", ans * temp);
44     }
45     return 0;
46 }
原文地址:https://www.cnblogs.com/Recoder/p/5913273.html