题目链接 acwing98/蓝书19页/POJ3889 分形之城
acwing98 分形之城
y总代码中z==3这一步 类似于z=0,1,2都是平移旋转 为何z=3时的坐标变换 多了减1。
y总的AC代码:
PLL calc(LL n, LL m)
{
if (!n) return {0, 0};
LL len = 1ll << (n - 1), cnt = 1ll << (2 * n - 2);
auto pos = calc(n - 1, m % cnt);
auto x = pos.first, y = pos.second;
auto z = m / cnt;
if (z == 0) return {y, x};
if (z == 1) return {x, y + len};
if (z == 2) return {x + len, y + len};
return {len * 2 - 1 - y, len - x - 1}; //<-------------这一步
}
提问于14天前
188