【POJ2253】Frogger 最短路,你想写LCA我不拦你

来源:互联网 发布:php官方手册 编辑:程序博客网 时间:2024/05/16 19:27

题意:多组数据,0停止。给出n个点的坐标,然后使1到2!!!!!!是到2!!不是到n!!!的最长边边长最小,并求该长。

题解:懒,所以直接写个一行floyd。

#include <cmath>#include <cstdio>#include <cstring>#include <algorithm>#define N 505using namespace std;double map[N][N];int n,x[N],y[N];int main(){//freopen("test.in","r",stdin);int i,j,k,g=0;while(scanf("%d",&n),n){for(i=1;i<=n;i++)scanf("%d%d",&x[i],&y[i]);for(i=1;i<=n;i++)for(j=1;j<=n;j++)map[i][j]=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);for(k=1;k<=n;k++)for(i=1;i<=n;i++)for(j=1;j<=n;j++)map[i][j]=min(map[i][j],max(map[i][k],map[k][j]));printf("Scenario #%d\nFrog Distance = %.3f\n\n",++g,sqrt(map[1][2]));}return 0;}


0 0
原创粉丝点击