nyoj 1072 我想回家

 一道相当题目描述相当扯的题。

这道题目的描述最后说的是求出到达最后一个点的最短距离,所以输入数据最后输入的城堡的坐标是没用的。

就是先求出两点之间的距离,若不大于村落间距离,并且不大于最后的距离限制 l ,则在两点间建边。

最后任意方法求出最短路即可。

 
#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define eps 1e-9
#define zero(x) (fabs(x)%d  %.2lf\n",t,min);
        if(t==-1)
            return min;
        vis[t]=1;
        for(int j=0; jmp[t][j]+divs[t])
                divs[j]=mp[t][j]+divs[t];
    }
    return divs[n-1];
}
void  init()
{
    memset(vis,0,sizeof(vis));
    for(int i=0; i%.2lf   %.21f    %.2lf\n",len,l,(double)(p[i].r+p[j].r));
                if((double)l-len>=0&&(double)(p[i].r+p[j].r)-len>=0)
                {
                    //printf("*****\n");
                    mp[i][j]=mp[j][i]=len;
                }
            }
        }
        double res=dij();
        if(res>=100000000.0)
            printf("GAME OVER.\n");
        else
            printf("%.6lf\n",res);
    }
    return 0;
}


你可能感兴趣的:(图论_最短路)