专栏文章
删数游戏
题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqhcp7w
- 此快照首次捕获于
- 2025/12/04 04:49 3 个月前
- 此快照最后确认于
- 2025/12/04 04:49 3 个月前
基本思路:
- 利用前缀和优化
- 枚举所有可能
代码:
CPP#include <bits/stdc++.h>
using namespace std;
int T,n,k,a[100010];
long long mx,s[100010];//开long long
int main(){
ios::sync_with_stdio(0);cin.tie(0);//优化输入
cin>>T;
while(T--)
{
mx=0;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++)
{
s[i]=s[i-1]+a[i];//前缀和
}
for(int i=0;i<=k;i++)//枚举所有情况
{
int x=i,y=(k-i)*2;//x:删几个最大值;y:删几个最小值
long long q=s[n-x]-s[y];
mx=max(mx,q);
}
cout<<mx<<'\n';
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...