P10669 BZOJ3118 Orz the MST

题目描述

给出一个带权的连通无向图,对于其中的每条边 $i$,在原来边权的基础上,其边权每增加 $1$ 需要付出的代价为 $a_i$,边权每减少 $1$ 需要付出的代价为 $b_i$。 现在指定该图的一棵生成树,求通过修改边权,使得该生成树成为图的一棵最小生成树,需要付出的最少总代价。

输入格式

第一行两个正整数 $n,m$,表示图的点数和边数,结点以 $1\sim n$ 编号。 接下来 $m$ 行,每行 $6$ 个正整数,$u_i,v_i,w_i,\textit{ff}_i,a_i,b_i$,表示一条边 $(u_i,v_i)$ 的权值为 $w_i$,在原边权基础上增加 $1$ 的代价为 $a_i$,减少 $1$ 的边权代价为 $b_i$,$\textit{ff}_i$ 若为 $1$ 则表示该边在指定的生成树中,若为 $0$ 则表示不在。数据保证 $\textit{ff}_i$ 值为 $1$ 的边刚好组成原图的一棵生成树。两点之间可能有多条不同的边,但没有连接同一点的边。

输出格式

输出一个正整数,表示所需付出的最少总代价。

说明/提示

**【样例解释】** 最优方案为: - $(1,4)$ 边权加 $2$,代价 $6$; - $(3,5)$ 边权加 $3$,代价 $3$; - $(3,6)$ 边权加 $4$,代价 $8$; - $(4,5)$ 边权减 $2$,代价 $4$; 总代价为 $21$。 **【数据范围】** 对于 $100\%$ 的数据,$1\leq n\leq 300$,$1\leq m,w_i,a_i,b_i\leq 1000$。