栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3102 Bee Garden

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3102 Bee Garden

#include<cstdio>#include<cstring>#include<cmath>inline int min(int a,int b){return a<b?a:b;}inline int max(int a,int b){return a>b?a:b;}const int MAXN = 205;const double eps = 1e-6;const double DINF = 1e20;int x[MAXN],y[MAXN];double w[MAXN][MAXN];int main(){    int N;    while(~scanf("%d",&N)){        for(int i=1;i<=N;i++) scanf("%d%d",&x[i],&y[i]);        for(int i=0;i<=N;i++) for(int j=0;j<=N;j++)     w[i][j]=DINF;        int a,b;        for(int i=1;i<=N;i++){ scanf("%d%d",&a,&b); w[a][b]=w[b][a]=sqrt(0.0+(x[a]-x[b])*(x[a]-x[b])+(y[a]-y[b])*(y[a]-y[b]));        }        //floyd        for(int k=0;k<=N;k++) for(int i=0;i<=N;i++)     if(w[i][k]+eps<DINF)     for(int j=0;j<=N;j++)         if(w[i][j]>w[i][k]+w[k][j])w[i][j]=w[i][k]+w[k][j];        double Max = 0;        for(int i=0;i<=N;i++) for(int j=i+1;j<=N;j++){     bool ok = true;     //check whether online     for(int k=0;k<=N;k++)         if(k!=i&&k!=j&&(x[i]-x[k])*(y[j]-y[k])==(x[j]-x[k])*(y[i]-y[k])  &&x[k]<=max(x[i],x[j])&&x[k]>=min(x[i],x[j])&&y[k]<=max(y[i],y[j])&&y[k]>=min(y[i],y[j])         ){    ok=false;  break;         }     if(ok){         double tmp = w[i][j]-sqrt(0.0+(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));  if(tmp>Max+eps){  Max=tmp;  a=i,b=j;         }     }  }        if(Max<eps)puts("-1");        else printf("%d %dn",a,b);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号