publicclassSolution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 方格矩阵Cn下标 * @param x1 int整型 方格1在方格矩阵中的横坐标 * @param y1 int整型 方格1在方格矩阵中的纵坐标 * @param x2 int整型 方格2在方格矩阵中的横坐标 * @param y2 int整型 方格2在方格矩阵中的纵坐标 * @return long长整型 */ publiclongsolution(int n, int x1, int y1, int x2, int y2) { // write code here return Math.abs(f(n, x1, y1) - f(n, x2, y2)); }
publiclongf(int n, int x, int y) { if (n == 0) return1; intm=1 << (n-1); if (x <= m && y <= m) return f(n-1, y, x); if (x > m && y <= m) return3L * m * m + f(n-1, m-y+1, m*2-x + 1); if (x < m && y > m) return1L * m * m + f(n-1, x, y - m);