Advertisement
nikunjsoni

1240

Jun 12th, 2021
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int tilingRectangle(int n, int m) {
  4.     int dp[14][14];
  5.     if((n == 11 && m == 13) || (m == 11 && n == 13))
  6.         return 6;
  7.     memset(dp, 0, sizeof dp);
  8.     for (int i = 1; i <= n; i++)
  9.         for (int j = 1; j <= m; j++){
  10.             if (i == j) {
  11.                 dp[i][j] = 1;
  12.                 continue;
  13.             }
  14.             dp[i][j] = i * j;
  15.             for (int k = 1; k <= i / 2; k++)
  16.                 dp[i][j] = min(dp[i][j], dp[i - k][j] + dp[k][j]);
  17.             for (int k = 1; k <= j / 2; k++)
  18.                 dp[i][j] = min(dp[i][j], dp[i][j - k] + dp[i][k]);
  19.         }
  20.    
  21.     return dp[n][m];
  22. }
  23. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement