File tree 1 file changed +36
-0
lines changed
solution/2300-2399/2338.Count the Number of Ideal Arrays
1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ function idealArrays ( n : number , maxValue : number ) : number {
2
+ const mod = 1e9 + 7 ;
3
+
4
+ const c : number [ ] [ ] = Array . from ( { length : n } , ( ) => Array ( 16 ) . fill ( 0 ) ) ;
5
+ for ( let i = 0 ; i < n ; i ++ ) {
6
+ for ( let j = 0 ; j <= i && j < 16 ; j ++ ) {
7
+ if ( j === 0 ) {
8
+ c [ i ] [ j ] = 1 ;
9
+ } else {
10
+ c [ i ] [ j ] = ( c [ i - 1 ] [ j ] + c [ i - 1 ] [ j - 1 ] ) % mod ;
11
+ }
12
+ }
13
+ }
14
+
15
+ const f : number [ ] [ ] = Array . from ( { length : maxValue + 1 } , ( ) => Array ( 16 ) . fill ( 0 ) ) ;
16
+ for ( let i = 1 ; i <= maxValue ; i ++ ) {
17
+ f [ i ] [ 1 ] = 1 ;
18
+ }
19
+
20
+ for ( let j = 1 ; j < 15 ; j ++ ) {
21
+ for ( let i = 1 ; i <= maxValue ; i ++ ) {
22
+ for ( let k = 2 ; k * i <= maxValue ; k ++ ) {
23
+ f [ k * i ] [ j + 1 ] = ( f [ k * i ] [ j + 1 ] + f [ i ] [ j ] ) % mod ;
24
+ }
25
+ }
26
+ }
27
+
28
+ let ans = 0 ;
29
+ for ( let i = 1 ; i <= maxValue ; i ++ ) {
30
+ for ( let j = 1 ; j < 16 ; j ++ ) {
31
+ ans = ( ans + f [ i ] [ j ] * c [ n - 1 ] [ j - 1 ] ) % mod ;
32
+ }
33
+ }
34
+
35
+ return ans ;
36
+ }
You can’t perform that action at this time.
0 commit comments