题目
思路
一眼找规律题,都
1
0
9
10^9
109说明枚举必然超时,找规律,每个点找好像没有什么规律,尝试找一下特殊点,比如:对角线上的点
4 16 36(右上角) 4k^2,看在第几层(去最大值)
以有规律的数为分界点,大于这个+多余的
小于这个,减去
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5+10;
int a[N];
int b[N]; //前缀和
signed main()
{
//换算成秒进行求解
//读数的话
int x, y;
cin >> x >> y;
int k = max(x, y); //xy的最大值就是所在的层
int ans = 0;
int res = abs(k - x) + abs(k - y); //曼哈顿距离,就是这两个之间的距离
if(x >= y) //有规律的点的下面
{
ans = 4 * k * k +res;
}
else
ans = 4 * k * k - res;
cout<<ans<<endl;
return 0;
}
总结
思路比较巧妙,要学会找规律!!!!