Skip to content

Commit b700e0c

Browse files
William FisetWilliam Fiset
William Fiset
authored and
William Fiset
committed
Finished scripting dominoes and trominoes
1 parent 4bb495a commit b700e0c

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed
68.5 KB
Binary file not shown.

src/main/java/com/williamfiset/algorithms/dp/examples/domino-and-tromino-tiling/Solution.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,55 +28,55 @@ static long f(int i, boolean t1, boolean t2) {
2828
boolean t3 = i + 1 < n;
2929
boolean t4 = i + 1 < n;
3030

31-
long ans = 0;
31+
long count = 0;
3232

3333
// Placing:
3434
// XX
3535
// X
36-
if (t1 && t2 && t3) ans += f(i + 1, false, true);
36+
if (t1 && t2 && t3) count += f(i + 1, false, true);
3737

3838
// Placing:
3939
// X
4040
// XX
41-
if (t1 && t2 && t4) ans += f(i + 1, true, false);
41+
if (t1 && t2 && t4) count += f(i + 1, true, false);
4242

4343
// Placing:
4444
// XX
4545
// #X
46-
if (t1 && !t2 && t3 && t4) ans += f(i + 1, false, false);
46+
if (t1 && !t2 && t3 && t4) count += f(i + 1, false, false);
4747

4848
// Placing:
4949
// #X
5050
// XX
51-
if (!t1 && t2 && t3 && t4) ans += f(i + 1, false, false);
51+
if (!t1 && t2 && t3 && t4) count += f(i + 1, false, false);
5252

5353
// Placing
5454
// X
5555
// X
56-
if (t1 && t2) ans += f(i + 1, true, true);
56+
if (t1 && t2) count += f(i + 1, true, true);
5757

5858
// Placing two horizontals. We don't place 2 verticals because
5959
// that's accounted for with the single vertical tile:
6060
// XX
6161
// XX
62-
if (t1 && t2 && t3 && t4) ans += f(i + 1, false, false);
62+
if (t1 && t2 && t3 && t4) count += f(i + 1, false, false);
6363

6464
// Placing:
6565
// XX
6666
// #
67-
if (t1 && !t2 && t3) ans += f(i + 1, false, true);
67+
if (t1 && !t2 && t3) count += f(i + 1, false, true);
6868

6969
// Placing:
7070
// #
7171
// XX
72-
if (!t1 && t2 && t4) ans += f(i + 1, true, false);
72+
if (!t1 && t2 && t4) count += f(i + 1, true, false);
7373

7474
// Current column is already fully tiled, so move to next column
7575
// #
7676
// #
77-
if (!t1 && !t2) ans += f(i + 1, true, true);
77+
if (!t1 && !t2) count += f(i + 1, true, true);
7878

79-
return dp[i][state] = ans % MOD;
79+
return dp[i][state] = count % MOD;
8080
}
8181

8282
static int makeState(boolean row1, boolean row2) {

0 commit comments

Comments
 (0)