CF R728 Div2 B
找 \(a_ia_j=i+j\) 的对数,\(a_i\ne a_j,n\leq10^5\)。
排序后枚举,由于 \(a_ia_j\) 会很大但是 \(i+j\) 会很小,所以枚举的效率是高的。
CF R728 Div2 C
已知单源最短路径长,求边权和的最小值。
尽量少安排正权边,多安排负权边,且要满足三角形不等式。
\(d(v)+cost(u,v)\ge d(u)\)
要让 \(cost(u,v)\) 尽量小,显然要取等号。
因此,从小到大排序,正权边连成一条链,每个点 \(i\) 都往前面的点 \(j\) 连一条 \(d(j)-d(i)\) 的边。
这个东西用前缀和瞎维护就ok了。