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

poj 3439 Server Relocation

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

poj 3439 Server Relocation

#include <iostream>#include <stdio.h>#include <cstring>#include <cmath>using namespace std;int n,start,en;double len1,len2;struct point{    double x,y;    int num;} points[1010];double getdis(int i,int j){    return sqrt((points[i].x-points[j].x)*(points[i].x-points[j].x)+     (points[i].y-points[j].y)*(points[i].y-points[j].y));}int que[10100];bool rem[1010];int main(){  int t;  cin>>t;  while(t--)  {        memset(rem,0,sizeof rem);      scanf("%d%d%d%lf%lf",&n,&start,&en,&len1,&len2);start--,en--;      for(int i=0;i<n;i++)        scanf("%lf%lf",&points[i].x,&points[i].y),points[i].num=0;     que[0]=start;     rem[start]=1;     int left=0,right=1;     while(left<right)     {         int t=que[left];left++;         bool flag=true;         for(int i=0;i<n;i++)         {  if(!rem[i]&&getdis(i,t)<=len1+len2)  {     que[right++]=i,points[i].num=points[t].num+1;     if(i==en)     flag=false;     rem[i]=1;  }         }         if(!flag) break;     }     if(left>=right)        cout<<"Impossiblen";     else     cout<<points[en].num<<endl;  }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377720.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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