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]})
posted @ 2022-02-27 22:45  zyy2001  阅读(119)  评论(0编辑  收藏  举报