zoukankan      html  css  js  c++  java
  • 牛的旅行

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 using namespace std;
     6 const int maxn=157;
     7 int x[maxn],y[maxn];
     8 double map[maxn][maxn],dmax[maxn];
     9 int n;
    10 double d(int x,int y){
    11     double ret;
    12     ret=(double)sqrt(x*x+y*y);
    13     return ret;
    14 }
    15 int main(){
    16     cin>>n;
    17     memset(map,0x7f7f7f7f,sizeof(map));
    18     for(int i=1;i<=n;i++) map[i][i]=0;
    19     for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
    20     for(int i=1;i<=n;i++){
    21         for(int j=1;j<=n;j++){
    22             char a;cin>>a;
    23             if(a=='1'){
    24                 map[i][j]=min(map[i][j],d(abs(x[i]-x[j]),abs(y[i]-y[j])));
    25                 map[j][i]=map[i][j];
    26             }
    27         }
    28     }
    29     for(int k=1;k<=n;k++)
    30         for(int i=1;i<=n;i++)
    31             for(int j=1;j<=n;j++)
    32                 if(map[i][j]>map[i][k]+map[k][j])
    33                     map[i][j]=map[i][k]+map[k][j]; 
    34     double l1=0;
    35     for(int i=1;i<=n;i++)
    36         for(int j=i+1;j<=n;j++)
    37             if(map[i][j]<0x7f7f7f7f){
    38                 dmax[i]=max(dmax[i],map[i][j]);
    39                 dmax[j]=max(dmax[j],map[i][j]);
    40                 l1=max(l1,dmax[i]);l1=max(l1,dmax[j]);
    41             }
    42     int num1,num2;
    43     double ans=0x7f7f7f7f;
    44     for(int i=1;i<=n;i++){
    45         for(int j=1;j<=n;j++){
    46             if(map[i][j]>=0x7f7f7f7f){
    47                 if(ans>dmax[i]+dmax[j]+d(abs(x[i]-x[j]),abs(y[i]-y[j]))){
    48                     ans=dmax[i]+dmax[j]+d(abs(x[i]-x[j]),abs(y[i]-y[j]));
    49                     num1=i;num2=j;
    50                 }
    51             }
    52         }
    53     }
    54     ans=max(ans,l1);
    55     printf("%.6lf
    ",ans);
    56     return 0;
    57 } 

    这种d[x]+d[y]+dis[x][y]的想法不是第一次见了,DP求树的直径时就是这样

  • 相关阅读:
    泛型
    HTTP和HTTPS
    计算机网络(三)应用层
    练习38-操作列表
    第27讲:集合—在我的世界里,你就是唯一
    第25~26讲:字典:当索引不好用时
    第1~2讲:数据结构和算法绪论
    第23~24讲:这帮小兔崽子(斐波那契数列)和汉诺塔游戏
    练习36--设计和调试
    001-定义电子日历类
  • 原文地址:https://www.cnblogs.com/lcan/p/9548005.html
Copyright © 2011-2022 走看看