牛客:aoe还是单体

牛可乐准备和
n

n 个怪物厮杀。已知第
i

i 个怪物的血量为
a
i
a
i


牛可乐有两个技能:
第一个技能是蛮牛冲撞,消耗
1

1
m
p

mp ,可以对任意单体怪物造成
1

1 点伤害。
第二个技能是蛮牛践踏,消耗
x

x
m
p

mp ,可以对全体怪物造成
1

1 点伤害。
牛可乐想知道,将这些怪物全部击杀,消耗
m
p

mp 的最小值的多少?
输入描述:
第一行两个正整数
n

n 和
x

x ,分别代表怪物的数量、每次蛮牛践踏消耗的
m
p

mp 值。

1

n

200000

1

x

1
0
9

(1≤n≤200000,1≤x≤10
9

第二行
n

n 个正整数
a
i
a
i

,分别代表每个怪物的血量。

1

a
i

1
0
9

(1≤a
i

≤10
9

输出描述:
一个正整数,代表消耗
m
p

mp 的最小值。

include <bits/stdc++.h>

using namespace std;

int main()
{
long long n,x;
cin>>n>>x;
vectorvec(n);
long long sum=0;
for(int i=0;i<n;i++){
cin>>vec[i];
sum+=vec[i];
}
sort(vec.begin(),vec.end(),greater());
if(x<n){
long long need=0;
for(int i=0;i<x;i++){
need+=vec[i]-vec[x];
}
cout<<need+vec[x]*x;
}
else{
cout<<sum<<endl;
}
return 0;
}

posted @ 2026-04-15 21:59  lagranSun  阅读(11)  评论(0)    收藏  举报