Stop Counting!

Stop Counting!

https://ac.nowcoder.com/acm/contest/13168/J

将每个点依次作为边界,对每个点操作:要么全删左边,要么全删右边,寻最大值,以此求解(具体见代码)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int const N=1e6+7;
int n;
ll a[N],b[N],c[N];  //b是前缀和  //c是后缀和
double ans,z1,z2;
int main(){
    cin >> n;
    for(int i=1;i<=n;++i){
        cin >> a[i];
        b[i]=a[i]+b[i-1];
    }
    for(int i=n;i>=1;--i){
        c[i]=a[i]+c[i+1];
    }
    for(int i=1;i<=n;++i){
        z1= (double) b[i]/i;
        z2= (double) c[i]/(n-i+1);
        ans=max(ans,max(z1,z2));
    }
    printf("%.10lf",ans);
    return 0;
} 
全部评论

相关推荐

09-22 22:22
中山大学 Java
乌鱼子萨奇:羡慕你啊,直接转正了,都不用经历秋招的炼狱,但是你少经历了很多痛苦的事情啊
点赞 评论 收藏
分享
丿南烟丶:黑白模板吧,不要这样花哨的。 主要成就太空了,和获奖融在一起,写一两行就行了。 职业技能不要这样排,就传统的掌握精通什么什么然后举例补充的一些重要技术点。 自我介绍说实话也没啥用,可以删了。 把自己的两个项目方案细节补充上去,为什么这样设计,怎么设计,成果是什么按star法则来写 你要引导面试官来问你的技能和项目,你的获奖和自我介绍别人可能看都不看一眼或者不太在乎,重要的是展示你能干活的能力
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务