如果TLE 35pts
查看原帖
如果TLE 35pts
371409
Dangerise楼主2024/8/15 08:39

计算曼哈顿距离时可以用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;
}
2024/8/15 08:39
加载中...