题目
思路
一眼找规律题,都 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;}elseans = 4 * k * k - res;cout<<ans<<endl;return 0;
}
总结
思路比较巧妙,要学会找规律!!!!