链接:https://www.icpc.camp/contests/4mYguiUR8k0GKE

Partial Sum

Input

The input contains zero or more test cases and is terminated by end-of-file. For each test case: The first line contains three integers n, m, C. The second line contains n integers a1, a2, . . . , an.

• 2 ≤ n ≤ 105

• 1 ≤ 2m ≤ n + 1

• |ai |, C ≤ 104

• The sum of n does not exceed 106 .

题意:

给出n个数,每次选连续的一段数,已经被选作起点或终点的点不能再被选作起点与终点。

题解:

由于是绝对值  ,|sum|=max(cal[a]-cal[b],cal[b]-cal[a]);

而贪心的做法是将所有前缀和+0,共n+1个元素进行排序。

每次取出最大值和最小值相减即为最优解

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int cal[maxn];
int main()
{
int n,m,C;
while(cin>>n>>m>>C)
{
cal[0]=0;
for(int i=1;i<=n;i++)
{
int num;
scanf("%d",&num);
cal[i]=cal[i-1]+num;
}
sort(cal,cal+1+n);
long long ans=0;
for(int i=1;i<=m;i++)
{
int kk=abs(cal[i-1]-cal[n-i+1]);
if(kk<=C)break;
ans+=(kk-C);
}
cout<<ans<<endl;
}
return 0;
}

  

最新文章

  1. memset函数详解
  2. jboss developers studio 快速创建 spring mvc 项目
  3. [转载]TFS入门指南
  4. matlab和C/C++混合编程--Mex
  5. OC第一节 —— 类和对象
  6. ajax 之js读取xml的多浏览器兼容
  7. linux安装lua相关编译报错
  8. javascript js 内存泄露
  9. Jsp中三种注释
  10. Perl中的单行凝视和多行凝视
  11. 使用js加载图像和setDataXML()加载数据
  12. C# App.config配置文件的讲解
  13. c#游戏进程杀手
  14. Hadoop体系架构简介
  15. linux 下 nc 命令的使用
  16. SpringDataJpa的批量 保存 修改 操作
  17. springmvc date
  18. Linux:批量修改分隔符(awk、BEGIN、FS、OFS、print、tr命令)
  19. Python 面试题集锦【315+道题】
  20. .NET反射 Type类

热门文章

  1. AWS云使用100条宝贵经验分享
  2. NoSQL与MongoDB介绍
  3. Cisco 日常巡检命令
  4. Docker: docker 启动一个Nginx容器
  5. Django forms 关于select和checkbox设置初始选中值
  6. DP 魔族密码 LIS
  7. MySQL高级知识(十六)——小表驱动大表
  8. 报错Unexpected token u
  9. redis在.net架构中的应用(1)--使用servicestack连接redis
  10. ubuntu 在 Windows 下的安装