#4985. Negative Traveling Salesman

0

Negative Traveling Salesman

Negative Traveling Salesman

题目描述

有一个带权有向简单图,包含 NN 个顶点和 MM 条边。 顶点编号为 11 到 NN,第 ii 条边的权重为 WiW_i,从顶点 UiU_i 指向顶点 ViV_i。 权重可以为负,但图中不包含负权回路。 判断是否存在一条至少访问每个顶点一次的游走。如果存在,求被遍历的边权重总和的最小值。 如果同一条边被遍历多次,则每次遍历均累加该边的权重。 这里,“至少访问每个顶点一次的游走”是指顶点序列 v1,v2,…,vkv_1,v_2,\dots,v_k,满足下列两个条件:

对任意 ii (1≤i≤k−1)(1\leq i\leq k-1),存在一条从顶点 viv_i 指向顶点 vi+1v_{i+1} 的边。 对任意 jj (1≤j≤N)(1\leq j\leq N),存在 ii (1≤i≤k)(1\leq i\leq k) 使得 vi=jv_i=j。

输入格式

输入由标准输入给出,格式如下: NN MM U1U_1 V1V_1 W1W_1 U2U_2 V2V_2 W2W_2 ⋮\vdots UMU_M VMV_M WMW_M

输出格式

如果存在一条至少访问每个顶点一次的游走,输出被遍历的边权重总和的最小值。否则,输出 NoNo。

3 4
1 2 5
2 1 -3
2 3 -4
3 1 100
-2
3 2
1 2 0
2 1 0
No
5 9
1 2 -246288
4 5 -222742
3 1 246288
3 4 947824
5 2 -178721
4 3 -947824
5 4 756570
2 5 707902
5 1 36781
-449429

提示

2≤N≤202\leq N \leq 20 1≤M≤N(N−1)1\leq M \leq N(N-1) 1≤Ui,Vi≤N1\leq U_i,V_i \leq N Ui≠ViU_i \neq V_i (Ui,Vi)≠(Uj,Vj)(U_i,V_i) \neq (U_j,V_j) 对于 i≠ji\neq j −106≤Wi≤106-10^6\leq W_i \leq 10^6 所给图不存在负权回路。 所有输入值均为整数。按顶点顺序 2→1→2→32\rightarrow 1\rightarrow 2\rightarrow 3 进行,可以至少访问所有顶点一次,所遍历边的权重总和为 (−3)+5+(−4)=−2(-3)+5+(-4)=-2。 这是最小值。
不存在一条可访问所有顶点至少一次的游走。

标签: AtCoder|abc338F

来源

AtCoder|abc338F