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

本文探讨了图论中的Red-BlueGraph问题,通过构建超级源和超级汇,使用最小费用流算法解决边的染色问题。同时,分析了ChaoticV问题,介绍了一种基于有根树和带权重心的解决方案。

1742

被折叠的 条评论
为什么被折叠?



