供应链最长链

普及-⏱ 1000ms💾 256MB#P3159🏷️ 动态规划

题目描述

供应链上有 $n$ 个站点(编号 1~n),每个站点存有价值不同的货物。站点之间存在单向中转关系,且所有关系都从小编号指向大编号(因此不存在循环)。

物流车从任意站点出发,沿中转关系行驶(每个中转只能选一条边),每到一个站点就收取该站货物。请设计路线使收取的货物总价值最大:输出路线(站点编号用 - 连接)与最大总价值。

输入格式

第一行整数 $n$; 第二行 $n$ 个整数,为各站点货物价值; 随后若干行,每行两个整数 $x, y$($x < y$),表示从 $x$ 可直达 $y$; 最后一行 0 0 表示结束。

输出格式

两行: 第一行:最优路线(站点编号用 - 连接); 第二行:最大总价值。

数据范围

$$n \le 200,\quad \text{货物价值} \ge 0$$

样例输入 #1
6
5 10 20 5 4 5
1 2
1 4
2 4
3 4
4 5
4 6
5 6
0 0
样例输出 #1
3-4-5-6
34
样例输入 #2
1
100
0 0
样例输出 #2
1
100