1 条题解

  • 0
    @ 2024-12-24 9:49:26

    C++ :

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <string>
    #include <queue>
    #include <stack>
    #include <math.h>
    #include <map>
    #include <vector>
    #include <list>
    #include <stdlib.h>
    #include <set>
    #include <algorithm>
    using namespace std;
    
    typedef long long ll;
    #define rep(i,s,t) for(int i=s;i<t;i++)
    #define red(i,s,t) for(int i=s-1;i>=t;i--)
    #define ree(i,now) for(int i=head[now];i!=-1;i=edge[i].next)
    #define clr(a,v) memset(a,v,sizeof a)
    #define MID(x,y) int mid=(x+y)>>1
    #define L t<<1
    #define R t<<1|1
    #define mk(i,j) make_pair(i,j)
    #define SQR(x) ((x)*(x))
    
    inline int input(){
        int ret=0;int isN=0;char c=getchar();
        while(c<'0' || c>'9'){
            if(c=='-') isN=1;
            c=getchar();
        }
        while(c>='0' && c<='9'){
            ret=ret*10+c-'0';
            c=getchar();
        }
        return isN?-ret:ret;
    }
    
    inline void output(int x){
        if(x<0){
            putchar('-');x=-x;
        }
        int len=0,data[11];
        while(x){
            data[len++]=x%10;x/=10;
        }
        if(!len)    data[len++]=0;
        while(len--)
            putchar(data[len]+48);
        putchar('\n');
    }
    
    inline double dis(int a,int b,int w){
        return sqrt(SQR(a-b)+SQR(w));
    }
    double dp[110][110];
    int n,w,a[110];
    
    int main(){
        int t=input();
        while(t--){
            n=input(),w=input();
            rep(i,0,101) rep(j,0,101) dp[i][j]=0.0;
            rep(i,1,n+1) a[i]=input();
            rep(i,1,a[1]+1) dp[1][i]=0.0;
            rep(i,2,n+1){
                rep(j,1,a[i]+1){
                    rep(k,1,a[i-1]+1){
                        dp[i][j]=max(dp[i][j],dp[i-1][k]+dis(j,k,w));
                    }
                }
            }
            double ans=0;
            rep(i,1,a[n]+1) ans=max(ans,dp[n][i]);
            printf("%.3lf\n",ans);
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    977
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者