File tree 1 file changed +8
-8
lines changed
src/main/java/g3401_3500/s3405_count_the_number_of_arrays_with_k_matching_adjacent_elements
1 file changed +8
-8
lines changed Original file line number Diff line number Diff line change 3
3
// #Hard #2024_12_29_Time_57_(100.00%)_Space_44.55_(100.00%)
4
4
5
5
public class Solution {
6
- private final int mod = (int ) (1e9 + 7 );
6
+ private final static int MOD = (int ) (1e9 + 7 );
7
7
8
8
public int countGoodArrays (int n , int m , int k ) {
9
9
long [] f = new long [n + 1 ];
10
10
f [0 ] = 1 ;
11
11
f [1 ] = 1 ;
12
12
for (int i = 2 ; i < f .length ; i ++) {
13
- f [i ] = (f [i - 1 ] * i % mod );
13
+ f [i ] = (f [i - 1 ] * i % MOD );
14
14
}
15
15
long ans = comb (n - 1 , k , f );
16
- ans = ans * m % mod ;
17
- ans = ans * ex (m - 1 , n - k - 1 ) % mod ;
16
+ ans = ans * m % MOD ;
17
+ ans = ans * ex (m - 1L , n - k - 1L ) % MOD ;
18
18
return (int ) ans ;
19
19
}
20
20
21
21
private long ex (long b , long e ) {
22
22
long ans = 1 ;
23
23
while (e > 0 ) {
24
24
if (e % 2 == 1 ) {
25
- ans = (ans * b ) % mod ;
25
+ ans = (ans * b ) % MOD ;
26
26
}
27
- b = (b * b ) % mod ;
27
+ b = (b * b ) % MOD ;
28
28
e = e >> 1 ;
29
29
}
30
30
return ans ;
31
31
}
32
32
33
33
private long comb (int n , int r , long [] f ) {
34
- return f [n ] * (ff (f [r ])) % mod * ff (f [n - r ]) % mod ;
34
+ return f [n ] * (ff (f [r ])) % MOD * ff (f [n - r ]) % MOD ;
35
35
}
36
36
37
37
private long ff (long x ) {
38
- return ex (x , mod - 2 );
38
+ return ex (x , MOD - 2L );
39
39
}
40
40
}
You can’t perform that action at this time.
0 commit comments