由题意可以知道,至少要在一个牧场上边挖井,每个牧场至少和一个有井的牧场相连,于是又要判断了,是挖井呢还是连上管道?判断的过程是很麻烦的,于是我们可以假设一个点为水源,即超级源点 ,源点到每个点的距离为在这个点挖井的费用,这样就有了n+1个点,由每个点都必须间接或直接与水源相连,跑最小生成树即可。 #i...
到二号物品的路程时,直接返回了边权,但点权也是应该加上的,所以没有选完全我感觉还是我的程序有问题 重新思考,有没有一种方法能够让程序自动判断选择边权还是点权,并且终点是一样的? 受如果使用该物品的话边权和点权必选其一的启发,我们可以采用超级源点,即把所有的点的点权作为这个点和超级源点的边权,于是...
思路1、添加超级源点。这也是我之后选择的方法 即定义一个0号点,d[0]=0,并且v[0][j]=0,j为题目指定的一系列初始点坐标,使得将那一系列起始点都统一成了一个超级源点,但是因为把v[0][j]都设置为0,所以不会对结果产生任何影响,这样,只要照着朴素的迪杰斯特拉算法敲一遍,遍历n+1个点,即可得到结果。 ...