牛客练习赛69 B

划分

https://ac.nowcoder.com/acm/contest/7329/B

分析

对于一个确定的 ,答案一定是可以取到前 个最大的值,所以只需要排序,再维护一个前缀和。最后时间复杂度为

代码

#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int N = 1e5 +10;
LL A[N],sum[N],n,X,Y,ans;
bool cmp(LL x,LL y) {return x > y;}
int main()
{
    scanf("%lld",&n);
    for(int i = 1;i <= n;i++) scanf("%lld",&A[i]);
    sort(A+1,A+1+n,cmp);
    scanf("%lld%lld",&X,&Y);
    for(int i = 1;i <= n;i++) sum[i] = sum[i-1] + A[i];
    for(int i = 1;i <= X;i++)
    {
        for(int j = 1;j <= Y;j++) {
            ans += sum[i*j];
        }
    }
    cout << ans << endl;
}
全部评论

相关推荐

11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
出自剑来:找工作就是运气大于实力的事 我们组的应届生也是上周在牛客招聘被百度的捞了,一周速通下of
点赞 评论 收藏
分享
评论
7
4
分享
牛客网
牛客企业服务