首页 > 其他分享 >2020 ICPC Shanghai Site D I

2020 ICPC Shanghai Site D I

时间:2022-12-02 02:00:09浏览次数:43  
标签:Shanghai Site mid len3 len2 len1 2020 ans v2

闲话:赛时被D分类卡了很久 讨论了很多很傻逼的情况 但是就是没有想到交叉 赛后发现I其实更简单

D. Walker

虽然但是知道是分类讨论
不过还是很难知道他那三个情况咋想的
1.显然我们要是有一个超级快 我们可以先让他跑完小的一边再回过头跑长的一边
2.两个交叉跑过去 比如一个样例 1000 100 3 200 0.666
3.还有就是我们这两个在一个点“碰头” 当然不是真的碰头
就是左边点跑[0,mid] 右边点跑[mid,n]
这个我们可以直接二分时间 看看该时间内贪心的跑能不能碰头

bool check(double t){
    if(t*v1<len1||t*v2<len3)return 0;
    double l,r;
    if(t*v1>3*len1){
        l=t*v1-2*len1;
    }else{
        l=(t*v1-len1)/2;
    }
    if(t*v2>3*len3){
        r=t*v2-2*len3;
    }else{
        r=(t*v2-len3)/2;
    }
    if(l+r>=len2)return 1;
    else return 0;
}
void solve(){
    double ans=2e9;
    cin>>n>>p1>>v1>>p2>>v2;
    if (p1 > p2) swap(p1, p2), swap(v1, v2);
    len1=p1,len2=p2-p1,len3=n-p2;
    ans=min({ans,(len1*2+len2*2+len3)/v2,(len1+len2+len3*2)/v2,
            (len1*2+len2+len3)/v1,(len1+len2*2+len3*2)/v1});
    ans=min(ans,max((len1+len2)/v2,(len2+len3)/v1));
    double l=0,r=1e8;
    while((r-l)>1e-8){
        double mid=(l+r)/2;
        if(check(mid)){r=mid;ans=min(ans,mid);}
        else l=mid;
    }
    printf("%.10lf\n",ans);
}

I. Sky Garden

这道题就比较简单了 连mod都没有 划分集合都没有了
因为一个环 我们算了一个点 环上的点都是等价的 直接乘出来就可以了
而且范围还是500
直接暴力n3就可以了
其实随便改改都能变成O(1)的
因为其实你后面的点进来也不会改选择的方式

void solve(){
    int n,m;cin>>n>>m;
    //n层 pi/m
    double ans=0;
    if(m!=1){
        ans+=n*m+n*n*m;
    }
    for(int i=1;i<=n;i++){
        //tong cen
        double res=0;
        for(int j=1;j<m;j++){
            res+=min((double)j/m*pi*i,(double)i*2);
        }
        res*=2;
        res+=2*i;
        res*=m;
        ans+=res;
        //nei cen
        for(int j=i-1;j>=1;j--){
            res=0;
            for(int k=1;k<m;k++){
                res+=i-j;
                res+=min((double)k/m*pi*j,(double)j*2);
            }
            res*=2;
            res+=i-j;
            res+=i+j;
            res*=2*m;
            ans+=res;
        }
    }
    printf("%.10lf\n",ans);
}

标签:Shanghai,Site,mid,len3,len2,len1,2020,ans,v2
From: https://www.cnblogs.com/ycllz/p/16943284.html

相关文章