#P1200. 黑白棋

黑白棋

题目描述

Yachiyo 有一张带权简单图,顶点有黑白两色。Yachiyo 可以做 00 次或若干次操作,每次操作可以选择一条两端颜色不同的边,将其边权减 11 且交换两端颜色。

Yachiyo 希望让图上所有点的边权相等,但是她希望所有操作结束之后,所有点的颜色都恢复到未进行操作时的初始状态。Yachiyo 想知道,最少需要进行多少次操作才可以达到她的要求。

输入格式

第一行一个正整数 TT,代表数据组数。接下来 TT 组数据,每组数据的格式如下:

  • 第一行两个正整数 n,mn,m,分别代表图的点数和边数;
  • 接下来一行 nn 个整数,第 ii 个整数 cic_i 代表编号为 ii 的点的颜色。00 代表白色,11 代表黑色。
  • 接下来 mm 行,第 ii 行三个整数 xi,yi,wix_i,y_i,w_i,代表图中有一条 xi,yix_i,y_i 的边,边权为 wiw_i。

输出格式

对于每组数据,输出一行一个整数,代表最少需要的操作次数。如果无法满足 Yachiyo 的要求,输出 −1-1。

4
6 4
0 1 0 0 1 1
3 4 2
3 5 2
4 5 2
1 2 3
6 4
1 1 1 1 1 1
3 4 2
3 5 2
4 5 2
1 2 3
6 4
0 1 0 0 1 1
3 4 2
3 5 1
4 5 2
1 2 3
6 4
1 1 0 0 1 1
3 4 100
3 5 100
4 5 100
1 2 0
5
-1
-1
300

数据范围

  • 对于 30%30\% 的数据,wi≤10w_i \le 10;
  • 对于另外 30%30\% 的数据,保证 m=n−1m = n-1,输入的图是一棵树;
  • 对于 100%100\% 的数据:
    • 1≤T≤1051 \le T \le 10^5;
    • 1≤n,∑n≤1051 \le n, \sum n \le 10^5,1≤m,∑m≤5⋅1051 \le m, \sum m \le 5 \cdot 10^5;
    • 对于所有的 1≤i≤n1 \le i \le n:ci∈{0,1}c_i \in \{0,1\};
    • 对于所有的 1≤i≤m1 \le i \le m:0≤wi≤1090 \le w_i \le 10^9,1≤xi,yi≤n1 \le x_i, y_i \le n;
    • 数据保证输入的图中没有重边,输入的颜色只有 00 和 11。