1288 F. Red-Blue Graph
每条边有三种情况,我们用从左往右有1的流表示边被染成了红色,从右往左有1的流表示染成了蓝色,一条边没有流就是没有染色。那么左边红色的点流出应该大于流入,蓝色的点流入大于流出,而右边的点相反。建立一个超级源 S S S超级汇 T T T,对于所有无颜色的点 u u u,连接 ( S , u ) (S,u) (S,u)和 ( u , T ) (u,T) (u,T),流量无上限。对于其他的点,如果希望流入大于流出,就连接到超级汇,下限为1无上限的边,如果希望流出大于流入,就从超级源连过来,下限设为1。对于中间的边,建为一对单向边,上限为1,费用分别为r和b。这样就是一个带上下界的最小费用可行流。由于一对双向边同时流一定不优,所以不会发生这种情况。
1292 D. Chaotic V.
可以看出这是一棵有根树,树的根是1。现在要找到树的带权重心,计算距离之和。实际上就是找到子树大小大于等于 1 2 n \frac{1}{2}n 21n最小的子树的根。考虑 k ! k! k!,越接近的阶乘在树上的最近公共祖先深度越大。两个相邻的阶乘 k ! k! k!和 ( k + 1 ) ! (k+1)! (k+1)!的最近公共祖先的深度就是公共最大质因子的个数,先预处理出相邻的公共祖先深度,按深度排序,逐个合并,找到重心再统计答案。