1 solutions
-
0
思路
Floyd最短路 + 状压dp
这个题目要拿满分并不简单。具有一定的挑战性。基础较差的同学酌情入坑学习!
状压dp入门四部曲
1.先搞懂基本的动态规划
2.认识状压:信息学奥赛之动态规划《状态压缩DP》
3.认识:算法竞赛入门经典第二版(紫书) 复杂动态规划 章节 关于的讨论
如果没有纸质书的同学,可以直接看csdn讲解 TSP问题-状压dp 。 另外,如果只是为了搞懂这道题,到这就行了
4.426 状态压缩DP 玉米田【动态规划】 以及同主的其他状压例题讲解视频
先让我们考虑一个简化版本
给你一张完全图(任意两个点之间有边)。求解一条起点是的路径使得其访问过所有点恰好一次并且最终要回到点。
那么这是经典的问题。直接上状压即可。
本题:TSP问题的变化版
变化在于每个点允许重复访问。那考虑我们要从走到,允许重复访问就意味着我们可以经过一些已经访问的点来缩短从 的花费。所以不难想到直接走到之间的最短路即可,所以我们可以
1.使用Floyd算法 预处理出任意两个点之间的最短路。
2.在的过程中,两点之间的移动的花费为两点之间的最短路。
:这样做是否会和的定义有冲突?因为在走最短路的过程中,有些路径上的点已经被访问过了,但是我们的并没有更新他们?
没有冲突。因为我们定义的访问或没访问,是人为的定序,是为了保证能够访问过所有可能情况。而不是看它实际被访问过没。
类似题目推荐
LeetCode
CodeFun2000
P1188 2023.04.12-微众银行春招-第三题-魔法收纳器
笔试真题几乎没考过状态压缩这么难的知识点。这里推荐一个状态压缩相关的比较有意思的题。
代码
CPP
python
Java
Go
Js
- 1
Information
- ID
- 3
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 18
- Accepted
- 8
- Uploaded By