下面这段代码主要是二进制拆分 H×WH\times WH×W 的矩阵,使得每个小矩阵都是 2i×2i2^i \times 2^i2i×2i 的形式并且矩阵个数最少,画了一下不太理解这样为什么行/kel
其中 numinum_inumi意为 2i×2i2^i \times 2^i2i×2i 的矩阵有 numinum_inumi 个
for (int i = 29; ~i; i--) { if (h >> i & 1) num[i] += w >> i; if (w >> i & 1) num[i] += h >> i; if ((h & w) >> i & 1) num[i]--; }