计算曼哈顿距离时可以用map把结果缓存下来,避免重复计算
inline int sx(int x) {
static unordered_map<int,int> st;
if(st.count(x)) {
return st[x];
}
int ans=0;
for(int i=1; i<=k; i++) {
ans+=abs(x-a[i].x);
}
return st[x]=ans;
}
inline int sy(int y) {
static unordered_map<int,int> st;
if(st.count(y)){
return st[y];
}
int ans=0;
for(int i=1; i<=k; i++) {
ans+=abs(y-a[i].y);
}
return st[y]=ans;
}