#P2210. Haywire

    ID: 1187 Type: RemoteJudge 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>动态规划,dp搜索USACO模拟退火

Haywire

题目描述

Farmer John有 NN 只奶牛(4N124 \leq N \leq 12NN 是偶数)。

他们建立了一套原生的系统,使得奶牛与他的朋友可以通过由干草保护的线路来进行对话交流。

每一头奶牛在这个牧场中正好有 33 个朋友,并且他们必须把自己安排在一排干草堆中。

一条长 LL 的线路要占用刚好 LL 堆干草来保护线路。

比如说,如果有两头奶牛分别在草堆 44 与草堆 77 中,并且他们是朋友关系,那么我们就需要用 33 堆干草来建造线路,使他们之间能够联系。

假设每一对作为朋友的奶牛都必须用一条单独的线路来连接,并且我们可以随便地改变奶牛的位置,请计算出我们建造线路所需要的最少的干草堆。

输入格式

11 行:一个整数 NN。为了方便,我们给奶牛用 1N1\sim N 的数字进行编号。

2,3,,N+12, 3, \cdots, N + 1 行:每一行都有三个在 1N1\sim N 中的整数。第 i+1i+1 行的数字代表着第 ii 头奶牛的三个朋友的编号。显然,如果奶牛 ii 是奶牛 jj 的三个朋友之一,那么奶牛 jj 也是奶牛 ii 的三个朋友之一。

输出格式

一个整数,代表着建造线路需要的干草堆数量的最小值。

6
6 2 5
1 3 4
4 2 6
5 3 2
4 6 1
1 5 3
17

提示

样例解释: 奶牛最好的排列是 6, 5, 1, 4, 2, 3, 这个时候我们只需要 1717 个单位的干草堆。