5、28
差分约束:
a<=b+c
add(b,a,c)
最大解->求上界-> (xi<=xj+cj) 中右边最小值(初二数学知识)->最短路
最小解->求下界-> (xi>=xj+cj) 中右边最大值 -> 最长路
LCA:
倍增思想(孩子终于看懂为什么这样写了):
预处理:f[i][j]:i号节点的2^j辈祖先( f[i][0]=fa[i] , f[i][j]=f[f[i][j-1]][j-1])
1、让两个点深度一样高(让深度高的向浅试跳2^n)
2、同时上跳2^n,直到父亲相同
3、输出父亲
因为最后一定是还差一步跳到,所以一定是输出最后的父亲节点(次小生成树的时候我卡了好久因为这个)
浙公网安备 33010602011771号