首页 > 编程语言 >打卡信奥刷题(288)用C++工具信奥P2242[普及组/提高] 公路维修问题

打卡信奥刷题(288)用C++工具信奥P2242[普及组/提高] 公路维修问题

时间:2024-11-22 16:47:08浏览次数:3  
标签:25 信奥 21 int 31 样例 C++ ans 打卡

公路维修问题

题目描述

由于长期没有得到维修,A国的高速公路上出现了 n n n 个坑。为了尽快填补好这 n n n 个坑,A国决定对 m m m 处地段采取交通管制。为了求解方便,假设A国的高速公路只有一条,而且是笔直的。现在给出 n n n 个坑的位置,请你计算,最少要对多远的路段实施交通管制?

输入格式

输入数据共两行,第一行为两个正整数 n , m ( 2 ≤ m ≤ n ≤ 15000 ) n, m(2\le m \le n\le 15000) n,m(2≤m≤n≤15000)。第二行给出了 n n n 个坑的坐标(坐标值均在长整范围内,按从小到大的顺序给出,且不会有两个点坐标相同)。

输出格式

仅一行,为最小长度和。

样例 #1

样例输入 #1

18 4
3 4 6 8 14 15 16 17 21 25 26 27 30 31 40 41 42 43

样例输出 #1

25

提示

[样例说明]

交通管制的地段分别为: 3 − 8 , 14 − 21 , 25 − 31 , 40 − 43 3-8,14-21,25-31,40-43 3−8,14−21,25−31,40−43。

C++实现

#include
#include
int n,m;
int a[15005],b[15005],ans;
bool cmp(int k,int h){
return k>h;
}

int main(){
scanf(“%d%d”,&n,&m);
for(int i=1;i<=n;i++)
scanf(“%d”,&a[i]);
ans = a[n] - a[1] + 1;
for(int i=1;i<n;i++)
b[i] = a[i+1] - a[i];
std::sort(b+1,b+n,cmp);
for(int i=1;i<m;i++){
ans = ans - b[i] + 1;
}
printf(“%d\n”,ans);

return 0;
}

在这里插入图片描述
接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

标签:25,信奥,21,int,31,样例,C++,ans,打卡
From: https://blog.csdn.net/rogeliu/article/details/143914642

相关文章

  • 零基础同时入门并掌握C语言和C++——第一节——选择开发环境
    本系列文章将针对C语言使用VisualStudio2022, C++使用DevC++作为开发环境进行讲解。下面分别讲述选择这两款开发环境的原因和好处:DevC++市面上有很多版本,常见的有蓝色(也就是图片中展示的这款)红色,和小熊猫等。对于初学者来说可能会纠结究竟下载哪款才正确和会不会下载到盗版......
  • 【C++】高效数据操作神器:C++ STL 中 set 和 map 的完整指南
    个人主页:起名字真南的CSDN博客个人专栏:【数据结构初阶】......
  • 【C++】深入理解 C++ 中的继承进阶:多继承、菱形继承及其解决方案
    个人主页:起名字真南的CSDN博客个人专栏:【数据结构初阶】......
  • 打卡信奥刷题(286)用C++工具信奥P2240[普及组/提高] 【深基12.例1】部分背包问题
    【深基12.例1】部分背包问题题目描述阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有N(N≤100......
  • c++枪声问题
    题目描述大联欢的最后项目是小明和小李的射击比赛。比赛规则是这样的,每次两人同时射击,每个人有S枚子弹进行射击,第1秒两人同时打出第一枚子弹,以后的s-1子弹可以自己根据一定的间隔时间打出,设小明后面的子弹每隔t1秒打出一枚子弹,小李后面的子弹每隔t2秒打出一枚子弹,......
  • C++——类和对象(上)
    前言C语言大家都不陌生,它的最大特点是面向过程而C++是C语言的升级版,它由原来的面向过程转变为面向对象两者有什么区别呢?本次文章带你处认识C++中的面向对象面向对象和面向过程C语言面向过程面向过程就是关心各个步骤的交互,步骤的顺序影响结果C++面向对象面向对象就......
  • C++四级抽测题目(答案+题目)
    今天我给大家出一套C++四级考题限时1小时,大家加油!!!题目1:改变二维数组题目描述输入一个n行m列的二维数组,把它的奇数和偶数行互换后输出。(如果n为奇数,最后的一行无需调换位置)n,m为不超过20的正整数。数组内的数据为不大于200的正整数。输入格式共n+1行......
  • C++三级抽测题目(答案+题目)
    今天我给大家出一套C++三级考题限时1.5小时,大家加油!!!题目1:回文数回文数题目描述若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:数87:STEP1:87+78=165S......
  • C++:模拟实现unordered_map和unordered_set
    目录一.unordered_set和unordered_set二.哈希表的改造三.整体代码1.MyUnorderedMap.h2.MyUnorderedSet.h3.HashTable.h4.Hash.cpp一.unordered_set和unordered_setunordered_set和unordered_map的实现通过调用哈希表即可#pragmaonce#include"HashTable.h"using......
  • C++AVL平衡树
    1.AVL平衡树节点定义每一个节点都配左右孩子和父节点,以及平衡因子和其所对应的值。template<classK,classV>structAVLTreeNode{ //需要parent指针,后续更新平衡因子可以看到 pair<K,V>_kv; AVLTreeNode<K,V>*_left; AVLTreeNode<K,V>*_right; AVLTreeNode<K......