zoukankan      html  css  js  c++  java
  • bitonic tour luogu1523

     1 #include<cstdio> 
     2 #include<cstring>
     3 #include<cmath>
     4 #include<ctime>
     5 #include<iostream>
     6 #include<algorithm>
     7 #include<queue>
     8 #include<set>
     9 #define inf (0x7fffffff)
    10 #define l(a) ((a)<<1)
    11 #define r(a) ((a)<<1|1)
    12 #define b(a) (1<<(a))
    13 #define T_min (1e-8)
    14 #define R (0.9998)
    15 #define e (2.718281828459045)
    16 #define pi (3.14159265358979323846)
    17 #define rep(i,a,b) for(int i=a;i<=(b);i++)
    18 #define clr(a) memset(a,0,sizeof(a))
    19 typedef long long ll;
    20 typedef unsigned long long ull;
    21 using namespace std;
    22 int readint(){
    23     int t=0,f=1;char c=getchar();
    24     while(!isdigit(c)){
    25         if(c=='-') f=-1;
    26         c=getchar();
    27     }
    28     while(isdigit(c)){
    29         t=(t<<3)+(t<<1)+c-'0';
    30         c=getchar();
    31     }
    32     return t*f;
    33 }
    34 const int maxn=1009;
    35 int n;
    36 double d[maxn][maxn];
    37 struct node{
    38     double x,y;
    39     inline bool operator<(const node A)const{
    40         return x<A.x||(x==A.x&&y<A.y);
    41     }
    42 }X[maxn];
    43 double dis(int u,int v){
    44     return sqrt((X[u].x-X[v].x)*(X[u].x-X[v].x)+(X[u].y-X[v].y)*(X[u].y-X[v].y)); 
    45 }
    46 int main(){
    47     //freopen("#input.txt","r",stdin);
    48     //freopen("#output.txt","w",stdout);
    49     n=readint();
    50     rep(i,1,n){
    51         X[i].x=readint();X[i].y=readint();
    52     }
    53     sort(X+1,X+n+1);
    54     //rep(i,1,n) printf("%d %d
    ",X[i].x,X[i].y);
    55     rep(i,1,n) rep(j,1,n) d[i][j]=1e30;d[1][2]=dis(1,2);
    56     rep(j,2,n){
    57         rep(i,1,j-1){
    58             if(j==i+1){
    59                 rep(k,1,i-1) d[i][j]=min(d[i][j],d[k][i]+dis(j,k));
    60             }else d[i][j]=min(d[i][j],d[i][j-1]+dis(j,j-1));
    61         }
    62     }
    63     double ans=1e30;
    64     rep(i,1,n-1) ans=min(ans,d[i][n]+dis(i,n));
    65     printf("%.2lf
    ",ans);
    66     //fclose(stdin);
    67     //fclose(stdout);
    68     return 0;
    69 }
    DP
  • 相关阅读:
    brewhome
    WIN7下安装SQL server 2008 R2“出现性能计数器注册表配置单元一致性”失败的解决办法(新)
    话说ELK使用安装,结合.NET Core、ABP框架Nlog日志
    支付系统架构
    高可用Redis服务架构分析与搭建
    基于STS和JWT的微服务身份认证
    全面解读NoSQL数据库Redis的核心技术与应用实践
    Redis应用及安装
    微服务实践分享与探讨
    Docker的核心概念,镜像操作
  • 原文地址:https://www.cnblogs.com/chensiang/p/7913221.html
Copyright © 2011-2022 走看看