题目大意:
你在一个n个点(1<=n<=1e4)和m条边(1<=m<=1e4)无向图中,每个点有一个宝石,你要收集k(2<=k<=6)个宝石才能逃脱,被访问的点不能再访问第二次,问你可能经过的最大权值是多少?
思路:
这种题好像专门有算法耶。。。还是随机算法。。。。
不是很懂,又参考了大神博客:
Color coding是一种近似算法。主要用于解决图论中的问题,将图中的顶点着色,通过颜色来决策。
最小权重K-Path,很简单就是在一个图中寻找一条长度为K(包含K个顶点的路径),并且保证该路径的权重最短。
全局最短可有两种思路,第一种就是对所有点都当成起点来一次,求最短,还有就是每一次着色后都随机选择一个起点,当第二种方法运行的次数足够多是,他的性能就会向第一种收敛。
Color coding的过程如下:
1 使用K种颜色对图随机着色。
2 构建一个表,列为图中的顶点,行为K的大小。
3 进行动态规划。<