CF793D Presents in Bankopolis
题目链接
CF793D Presents in Bankopolis
给出 \(n\) 个点,\(m\) 条边的有向图。
求出一条任意起点、途中不能经过之前走过的点,并且包含 \(k\) 个点的权值最小的路径,如果不存在就输出 \(-1\) 。
边 \((u, v)\)经过点 \(x\),当且仅当 \(min(u,v) < x < max(u,v)\)。
\(1 \leq n,k \leq 80, 0\leq m\leq 2000, 1\leq u_i, v_i \leq n, 1\leq c_i\leq 1000\)
输入 #1
7 4
4
1 6 2
6 2 2
2 4 2
2 7 1
输出 #1
6
输入 #2
4 3
4
2 1 2
1 3 2
3 4 2
4 1 1
输出 #2
3
解题思路
区间dp
-
状态表示:\(f[i][j][t][p]\) 表示区间 \([l,r]\) 内走了 \(t\) 个点,且如果 \(p=0\) 则在点 \(l\),否则在 \(r\) 处的最小路径
-
状态计算:
-
- f[i][j][t][0]=min({f[i][j]})