Skip to content

Commit 933f868

Browse files
authored
Create Solution.ts
1 parent aa0f852 commit 933f868

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 numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
}

0 commit comments

Comments
 (0)