We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 317a080 commit 3a3ff8fCopy full SHA for 3a3ff8f
Math/Combination.py
@@ -0,0 +1,31 @@
1
+class Combination:
2
+ def __init__(self, N: int, MOD: int) -> None:
3
+ self.N = N + 100
4
+ self.MOD = MOD
5
+ self.fac = [0]*(self.N + 1)
6
+ self.fac_inv = [0]*(self.N + 1)
7
+ self.fac[0] = 1
8
+ self.fac_inv[0] = 1
9
+
10
+ for i in range(1, self.N + 1):
11
+ self.fac[i] = self.fac[i - 1] * i
12
+ self.fac[i] %= self.MOD
13
14
15
+ self.fac_inv[i] = pow(self.fac[i], self.MOD - 2, self.MOD)
16
17
+ def nCr(self, N: int, R: int) -> int:
18
+ return self.fac[N]*self.fac_inv[R]*self.fac_inv[N - R] % self.MOD
19
20
+ def nPr(self, N: int, R: int) -> int:
21
+ return self.nCr(N, R)*self.fac[R] % self.MOD
22
23
24
+def main() -> None:
25
+ N = 10**5
26
+ mod = 998244353
27
+ Com = Combination(N, mod)
28
29
30
+if __name__ == "__main__":
31
+ main()
0 commit comments