A

枚举所有方向即可。

B

一眼顶针, 排序以后处理即可。

C

观察到三次操作以后答案是 $0$。
一次操作的可以暴力, 两次操作的枚举所有的差, 搞个 $set$ 存一下数就行。

D

首先判 $a_i > b_i$ 就是不合法。
然后从小到大对 $(a_i, b_i)$ 按照 $b_i$ 为第一关键字按顺序贪心即可。

E

其实发现就是到一个点最远的点一定是直径端点, 问题转化为维护直径。
ban 一个点其实就是 ban 一段连续的 dfs 序, 使用线段树维护直径即可。

F

shaber 题, 随便倍增或者线段树优化建图以后拓扑排序即可。