AT_donuts_live2014_5 お菓子やさん

题目描述

幼年的パンチくん打算去巡游总共 $N$ 家糖果店。 其中有几家店可以在卡片上盖章。如果拥有某家店的印章,在另外一些店里可以获得额外的糖果。 但是,パンチくん不想去同一家店两次。因此,例如: - 如果有店 $A$ 的印章,在店 $B$ 可以获得 $3$ 个糖果; - 如果有店 $B$ 的印章,在店 $A$ 可以获得 $2$ 个糖果; 这两种条件同时存在时,必须放弃其中一项糖果。在这种情况下,放弃后者,获得前者的 $3$ 个糖果是最划算的。 请问パンチくん最多能获得多少个糖果?

输入格式

输入通过标准输入按以下格式给出。 > $N$ $E$ > $a_1$ $b_1$ $c_1$ > $a_2$ $b_2$ $c_2$ > $\vdots$ > $a_E$ $b_E$ $c_E$ - 第 $1$ 行包含两个用空格分隔的整数 $N\ (1\leq N\leq 16)$,表示糖果店的数量,以及 $E\ (0\leq E\leq N\times N)$,表示可以获得糖果的店铺关系数。 - 接下来的 $E$ 行,每行包含三个整数 $a_i\ (1\leq a_i\leq N)$,$b_i\ (1\leq b_i\leq N)$,$c_i\ (1\leq c_i\leq 1000)$,表示“如果有店 $a_i$ 的印章,在店 $b_i$ 可以获得 $c_i$ 个糖果”。 - 保证当 $i\neq j$ 时,$a_i\neq a_j$ 或 $b_i\neq b_j$。

输出格式

输出パンチくん最多能获得的糖果数量,输出一行,末尾需换行。

说明/提示

## 部分分 如果能正确解决 $1\leq N\leq 8$ 的测试用例,将获得 $130$ 分的部分分数。 ## 样例解释 1 这是题目描述中给出的例子。 ## 样例解释 2 可以获得所有的糖果。 ## 样例解释 3 通过放弃 $10$ 个糖果,可以获得最大值。 ## 样例解释 4 由于不能去同一家店两次,无法获得糖果。另外,也可能存在与这个印章服务无关的店铺。 由 ChatGPT 4.1 翻译