BZOJ3825 [Usaco2014 Nov]Marathon
英语阅读题。做完去翻译题面然后写英语作业了。 就维护一下区间里的距离和and忽略一个点的收益的最大值。完了。 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct seg { int l, r; int s, v; seg *ls, *rs; }; const int maxn = 100009; int n, m, x[maxn], y[maxn], d[maxn], v[maxn]; seg *rt, *sp; inline void upDis(int i) { if (i < n) d[i] = abs(x[i + 1] - x[i]) + abs(y[i + 1] - y[i]); else d[i] = 0; } inline void upVal(int i) { if (i > 1 && i < n) v[i] = d[i - 1] + d[i] - abs(x[i + 1] - x[i - 1]) - abs(y[i + 1] - y[i - 1]);...