Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int tilingRectangle(int n, int m) {
- int dp[14][14];
- if((n == 11 && m == 13) || (m == 11 && n == 13))
- return 6;
- memset(dp, 0, sizeof dp);
- for (int i = 1; i <= n; i++)
- for (int j = 1; j <= m; j++){
- if (i == j) {
- dp[i][j] = 1;
- continue;
- }
- dp[i][j] = i * j;
- for (int k = 1; k <= i / 2; k++)
- dp[i][j] = min(dp[i][j], dp[i - k][j] + dp[k][j]);
- for (int k = 1; k <= j / 2; k++)
- dp[i][j] = min(dp[i][j], dp[i][j - k] + dp[i][k]);
- }
- return dp[n][m];
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment