广联达笔试第二题

有没有大佬能讲一下思路呀


#广联达##笔试题目#
全部评论
我也是,感觉在哪里写过,应该会做,一做又做不出来。😂
1 回复 分享
发布于 2020-08-19 22:02
二分答案即可,check方法很简单,每个元素比预期少总和的和多出来的的综合是不是两倍关系即可 #include<bits/stdc++.h> using namespace std; int main(){     long long a[4];     long long sum = 0;     for(int i=0;i<4;i++){         scanf("%lld",&a[i]);         sum += a[i];     }     sort(a,a+4);     long long l = 1;     long long r = sum / 4;     long long ans = -1;     while(l<=r){         long long mid = (l+r) / 2;         long long need = 0;         long long left = 0;         for(int i=0;i<4;i++){             if(a[i] < mid){                 need += (mid - a[i]);             }else if(a[i]>mid){                 left += (a[i] - mid);             }         }         if(need * 2<=left){             ans = max(ans,mid);             l = mid+1;         }else{             r = mid-1;         }     }     cout<<ans * 4<<endl; }
1 回复 分享
发布于 2020-08-20 10:21
同求!真的是一点思路都没有
点赞 回复 分享
发布于 2020-08-19 21:24

相关推荐

头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
1 4 评论
分享
牛客网
牛客企业服务