移动距离
没啥可说,找规律O(1)
主要是细节处理,所有楼号自减之后,可以利用cpp向下取整得语法特性来求出行列号
#include<iostream>
using namespace std;
const int N = 10010;
int q[N];
int w,n,m;
int main()
{
cin>>w>>m>>n;//输入的两个楼号,减一方便计算行号,而且不影响结果
m --,n --;
//按题目规律来写
int x1 = m / w , x2 = n / w;//楼号直接除以w得行号
int y1 = m % w , y2 = n % w;//楼号取模属于正序得列号
if(x1&1) y1 = w - 1 - y1;
if(x2&1) y2 = w - 1 - y2;
cout<<abs(x1-x2)+abs(y1-y2)<<endl;
return 0;
}