#CF1038E. 最大匹配

    ID: 6184 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>搜索枚举动态规划线性代数位运算DFS图结构*2400欧拉路径

最大匹配

E. 最大匹配

每个测试的时间限制:2 秒
每个测试的内存限制:256 兆字节


题目描述

nn 个块,每个块的形式为 $[\text{color}_1 \mid \text{value} \mid \text{color}_2]$,并且该块可以翻转得到 $[\text{color}_2 \mid \text{value} \mid \text{color}_1]$。

一个块序列被称为有效的,当且仅当相邻块接触端点的颜色相同。
例如,三个块 AABBCC 的序列是有效的,如果 BB 的左侧颜色与 AA 的右侧颜色相同,且 BB 的右侧颜色与 CC 的左侧颜色相同。

序列的价值定义为该序列中所有块的数值之和。

请找出:从给定的块中选取一个子集,并经过重新排序和必要的翻转后,能够构成的有效序列的最大可能总价值。
每个块在序列中最多使用一次。


输入格式

第一行包含一个整数 nn1n1001 \le n \le 100)—— 给定块的数量。

接下来的 nn 行,每行描述一个块,包含三个整数 color1,i\text{color}_{1,i}valuei\text{value}_icolor2,i\text{color}_{2,i}1color1,i,color2,i41 \le \text{color}_{1,i}, \text{color}_{2,i} \le 41valuei1051 \le \text{value}_i \le 10^5)。


输出格式

输出一个整数 —— 能构成有效序列的块子集的最大总价值。


样例

样例 1

输入:

6
2 1 4
1 2 4
3 4 4
2 8 3
3 16 3
1 32 2

输出:

63

样例 2

输入:

7
1 100000 1
1 100000 2
1 100000 2
4 50000 3
3 50000 4
4 50000 4
3 50000 3

输出:

300000

样例 3

输入:

4
1 1000 1
2 500 2
3 250 3
4 125 4

输出:

1000

提示

在第一个样例中,可以使用所有块构成一个有效序列。

其中一个有效序列如下:

$[4 \mid 2 \mid 1] \ [1 \mid 32 \mid 2] \ [2 \mid 8 \mid 3] \ [3 \mid 16 \mid 3] \ [3 \mid 4 \mid 4] \ [4 \mid 1 \mid 2]$

其中输入的第一个块 [214][2 \mid 1 \mid 4] 被翻转为 [412][4 \mid 1 \mid 2],第二个块 [124][1 \mid 2 \mid 4] 被翻转为 [421][4 \mid 2 \mid 1]

在第二个样例中,最优解可以由前三个块构成(将输入的第二或第三个块翻转):

$[2 \mid 100000 \mid 1] \ [1 \mid 100000 \mid 1] \ [1 \mid 100000 \mid 2]$

在第三个样例中,无法构成由两个或更多块组成的有效序列,因此答案是只包含第一个块的序列,因为它是价值最大的块。