分形之城

确定两座城市所在坐标, 就可以计算距离了。
坐标可以递归计算。

虽然我看不懂题的样子很狼狈, 但是我写伪代码的样子真的很靓仔 >w<

//霍心草坐
pair<int, int> calc(int N, int p)
{
    if(N == 0) return make_pair(1, 1);
    // end
    int tmp = 1 << (2 * (N-1)) ; //size of smaller city block
    pair<int, int> smaller ;
    if(p > 3*tmp) {
        smaller = calc(N-1, p-3*tmp);
        smaller.first += tmp;
        smaller.second += tmp;
    }
    else
    if(p > 2*tmp) {
        smaller = calc(N-1, p-2*tmp);
        //一系列操作
        smaller.first += tmp;
    }
    else
    if(p > tmp) {
        smaller = calc(N-1, p-tmp);
        //一系列操作
        smaller.second += tmp;
    }
    else {
        smaller = calc(N-1, p);
        //一系列操作
    }
    return smaller; //now
}
原文地址:https://www.cnblogs.com/tztqwq/p/12238537.html