http://acm.hdu.edu.cn/showproblem.php?pid=2073
规律
按照题目意思来看我们可以把整个过程拆分成两个操作不断循环的步奏
每个循环包含两种操作向上和向下 该次循环内范围大概是一个正方形的样子(即x,y属于0~a);
(1)向上的方向移动
由于上个循环中 我们在一个正方形内 所以进入下一个循环的时候我们的横坐标会+1
我们可以根据x的记录来+1
则先y = x + 1
然后x = 0
这样就进入下一个循环里了
(2)向右下的方向移动
向右下方向运动的直线斜率为-1的直线平行
那么就直接x++,y--就好了 直到y为0结束
不断重复以上操作就可以算到每两个点之间的距离
ac代码
http://paste.ubuntu.com/8409282/