A. 贪心的换前缀即可
B. 倒序,贪心的平均拆分。
C. 构造一个环和一条+2的路。
D. 其实也就是改变两个位置的符号,枚举情况就好了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| void solve() { int n; cin >> n; vc<pii> p(n); rep(i, n) cin >> p[i].fi; rep(i, n) cin >> p[i].se; sort(all(p)); ll res = 0; rep(i, n) { res += abs(p[i].fi - p[i].se); } vc<ll> w1, w2; rep(i, n) { w1.pb(p[i].fi + p[i].se - abs(p[i].fi - p[i].se)); w2.pb(-p[i].fi - p[i].se - abs(p[i].fi - p[i].se)); } cout << res + max(*max_element(all(w1)) + *max_element(all(w2)), 0LL) << "\n"; }
|
E. https://codeforces.com/contest/1898/submission/233522455
贪心,可以交换 t 的顺序对变成 s 的子串。
具体的:
F. 没补。