P7751 [COCI 2013/2014 #2] PUTNIK

题目描述

销售员 Sept 有一个任务,即游览 $N$ 座城市(从 $1$ 到 $N$ 编号),每座城市只能游览**恰好一次**。 这 $N$ 座城市中,每两座之间都有一列航班。Sept 追求效率,所以他希望在飞行上消耗的时间最少。为此,他可以调整这些城市的游览顺序。 但 Sept 对这个游览顺序有一个奇怪的要求: - 对于城市 $1$ 没有要求。 - 如果要游览城市 $K(K\in[2,N])$,则所有编号小于 $K$ 的城市,要么都在游览城市 $K$ 前游览完,要么都在游览城市 $K$ 后游览完。\ 换句话说,对于两个城市 $X,Y(1\le X,Y< K)$,不能在城市 $K$ 前游览城市 $X$ 而在城市 $K$ 后游览城市 $Y$。 在这些限制下,给定每两座城市之间乘坐航班所需的时间,求出 Sept 在飞行上消耗的最少时间。

输入格式

第一行一个整数 $N$,即城市的数量。 接下来 $N$ 行 $N$ 列整数。我们令 $(A,B)$ 表示第 $A$ 行的第 $B$ 个数,则有 - $(A,B)$ 表示城市 $A,B$ 之间乘坐航班所需的时间。 - 若 $A=B$,$(A,B)=0$。 - $(A,B)=(B,A)$。

输出格式

仅一行一个整数,即 Sept 在飞行上消耗的最少时间。

说明/提示

#### 样例 1 说明 顺序 $\tt2,1,3$ 或 $\tt3,1,2$ 都是可以的。 注意到 $\tt1,3,2$ 用时更短,但不符合 Sept 的奇怪要求。 #### 样例 2 说明 顺序 $\tt3,1,2,4$ 或 $\tt4,2,1,3$ 都是可以的。 #### 数据规模与约定 **本题不采用捆绑测试,在评测中也不会体现 Subtask。** - Subtask 1 $\tt(40pts)$:$2\le N\le 10$。 - Subtask 2 $\tt(20pts)$:$2\le N\le 20$。 - Subtask 3 $\tt(60pts)$:无特殊限制。 对于 $100\%$ 的数据,有 $2\le N\le 1500$,$0\le (A,B)\le 10^3$。 #### 来源 **本题译自 [COCI2013-2014](https://hsin.hr/coci/archive/2013_2014/) [CONTEST 2](https://hsin.hr/coci/archive/2013_2014/contest2_tasks.pdf) _T4 PUTNIK_。** 按照原题数据配置,本题满分 $120$ 分。