Python Hard
```python3 []
class Solution:
    def minimumWhiteTiles(self, floor: str, numCarpets: int, carpetLen: int) -> int:
        N = len(floor)

        @cache
        def calc(index, k):
            if index >= N:
                return 0

            best = calc(index + 1, k) + int(floor[index])

            if k > 0:
                best = min(best, calc(index + carpetLen, k-1))

            return best



        return calc(0, numCarpets)

```
['Python3']