题意是,给出n个k维空间下的点,然后q次操作,每次操作要么修改其中一个点的坐标,要么查询下标为[l,r]区间中所有点中两点的最大曼哈顿距离. 思路:参考blog:https://blog.csdn.net/Anxdada/article/details/81980574,里面讲了k维空间中的最大曼哈顿距离求法,然后利用这个方案改一改,用线段树来维护这些值就好了. #include<bits/stdc++.h> using namespace std; #define ll long long
class Space<T> : IEnumerable<Space<T>> { public T Filler { get { if (!ed) { ed = true; return (filler = Top.create()); } return filler; } } public Space<T> Upper { get; private set; } public Space<T> Top => Upper?.Top ?? t
class Space : IEnumerable<Space> { public object Filler { get { return filler ?? (filler = Top.create()); } } public Space Upper { get; protected set; } public Space Top => Upper?.Top ?? this; private Func<object> create; private object fi