CF1197C

题意:

有一个递增的数列,把它分成k段,找到这样的分段方法,即每段最大值减最小值的和最小

解法:

分成k段,即要加k-1个隔断,这k-1个隔断,能隔开差值最大的几个,那最后得到分隔后的各段最大最小差值和最小

CODE:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector> using namespace std; #define LL long long
const int N = 3e5 + 100; int n,a[N],k;
vector<int> G; int main() {
scanf("%d%d",&n,&k);
for(int i = 1 ; i <= n ; ++i)
scanf("%d",&a[i]);
for(int i = 2 ; i <= n ; ++i)
G.push_back(a[i - 1] - a[i]);
sort(G.begin(), G.end());
int ans = a[n] - a[1];
for(int i = 0 ; i < k - 1 ; ++i) ans += G[i];
printf("%d",ans);
//system("pause");
return 0;
}

最新文章

  1. Android源码——Logger日志系统
  2. [Note] Software Testing
  3. DataGridView 导出到Excel
  4. 1.Android入门学习
  5. [原创]java WEB学习笔记69:Struts2 学习之路-- 消息处理与国际化,概述,配置国际资源文件,访问国际化消息,通过超链接切换语言
  6. Python第一个入门程序
  7. dhcp源码编译支持4G上网卡
  8. jquery获取form表单内容以及绑定数据到form表单
  9. Activiti工作流学习-----基于5.19.0版本(1)
  10. Java面向对象总复习-QuickHit
  11. Docker - 虚拟网桥
  12. python_装饰器_语法糖
  13. linux tcp重传多会导致软中断在各个核很不均匀么?
  14. Modelsim仿真.do脚本示例
  15. Android Studio 创建不同分辨率的图标
  16. tp3.2 支付宝手机网站支付
  17. mysql 主键和唯一索引的区别
  18. java关于null的介绍及比较问题..未完待续
  19. swift UITabelVIew - 纯代码自定义tabelViewCell
  20. LintCode 508: Wiggle Sort

热门文章

  1. Flash播放控件属性详解
  2. java小工具:通过URL连接爬取资源(图片)
  3. 客户端相关知识学习(十一)之Android H5交互Webview实现localStorage数据存储
  4. rabbitMQ 安装,基于Windows环境
  5. js检测是不是数字
  6. stm32 SysTick系统定时器
  7. 百度定位SDK 返回error code : 162 latitude : 4.9E-324 lontitude : 4.9E-324
  8. 3.ConcurrentHashMap 锁分段机制 Copy-On-Write
  9. DNS理解
  10. Windows10关闭自动更新方法