树状数组与线段树(三)

如下图所示的螺旋折线经过平面上所有整点恰好一次。

p1.png

对于整点 (X,Y),我们定义它到原点的距离 dis(X,Y) 是从原点到 (X,Y) 的螺旋折线段的长度。

例如 dis(0,1)=3,dis(2,1)=9

给出整点坐标 (X,Y),你能计算出 dis(X,Y)吗?

输入格式

包含两个整数 X,Y

输出格式

输出一个整数,表示 dis(X,Y)

数据范围

109X,Y109

输入样例: 0 1 输出样例: 3
解题思路:这是一道找规律题,我们可以将整个坐标都用距离标识一下,如下图

树状数组与线段树(三)

 

 我们先看x>=0&&y>=0时:若x>=y,dis=(2*x)*(2*x)+(x-y),若x<y,dis=(2*y)*(2*y)-(y-x)

再看x<0&&y>0:x取绝对值,若x>=y,dis=(2*x-1)*(2*x)-(x-y),若x<y,dis=(2*y-1)*(2*y)+(y-x)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpjdg.html