原题链接:Fractal Streets
题面:
思路:
本题关键要解决:求编号为 M M M的房屋在 N N N级城市中的位置。把该问题记为 c a l c ( N , M ) calc(N, M) calc(N,M) ,本题就是求 c a l c ( N , A ) calc(N, A) calc(N,A) 和 c a l c ( N , B ) calc(N, B) calc(N,B) 之间的距离。
该题每一级的图像都是由上一级的图像变换得来的。
具体的变换如下:
假设当前为 N N N 级城市,将其对称的分成房屋数量完全相等的四个小块,即左上、右上、右下、左下。而这四个方块是由上一级城市变换得到的。其中左上方是由 N − 1 N-1 N−1 级城市顺时针旋转 90 ° 90° 90°得到的,右上、右下仅平移,左下方由上一级逆时针旋转 90 ° 90° 90°得到。
已知, N N N 级城市的房屋数量为