蓝桥集训之修理牛棚

蓝桥集训之修理牛棚

  • 核心思想:贪心

    • 先把所有牛棚合成一块木板
    • 然后将所有间隙大小求出 排序找到最大的n-1个
    • 总长度 - n-1个间隙 得到剩下n个木板总长度
cpp 复制代码
  #include <iostream>
  #include <cstring>
  #include <algorithm>
  
  using namespace std;
  const int N = 210;
  
  int a[N],space[N];
  int n,m,c;
  
  int main()
  {
      cin>>n>>m>>c;
      for(int i=0;i<c;i++) cin>>a[i];
      sort(a,a+c); 
      for(int i=1;i<c;i++) space[i] = a[i]-a[i-1]-1;  //求间隙长度
      int res = a[c-1] - a[0] + 1;  //总长度
      //从大到小排间隙
      sort(space+1,space+c,greater<int>());
      for(int i=1;i<n;i++) res -= space[i];
      cout<<res<<endl;
      return 0;
  }
相关推荐
知星小度S3 分钟前
算法训练之递归(一)
数据结构·算法
未来之窗软件服务9 分钟前
SenseVoicecpp ggml-webgpu大模型[AI人工智能(七十五)]—东方仙盟
c++·人工智能·算法·仙盟创梦ide·东方仙盟
py有趣12 分钟前
力扣热门100题之反转链表
数据结构·链表
xuxie9913 分钟前
N15 I²C(串行通信总线)
数据结构
ZPC821022 分钟前
ROS 2 手眼标定完整方案
人工智能·算法·性能优化·机器人
Q741_14735 分钟前
每日一题 力扣 3418. 机器人可以获得的最大金币数 力扣 215. 数组中的第K个最大元素 动态规划 TopK问题 C++ 题解
c++·算法·leetcode·动态规划·topk
Frostnova丶41 分钟前
LeetCode 3418.机器人可以获得的最大金币数
算法·leetcode
寻寻觅觅☆44 分钟前
东华OJ-基础题-31-素数(C++)
开发语言·c++·算法
松小白song1 小时前
PID详解+Matlab实现
开发语言·数据结构·matlab
仟濹1 小时前
【算法打卡day36(2026-04-02 周四)】DFS专项训练3
算法·深度优先