[蓝桥杯 2025 省 B] 画展布置

要使L值越小,我们容易知道,只有连续几个相邻的数才会使L最小。

因此,我们第一步应该把输入的数据排序,这里直接调用一个sort排序即可。

排序完成之后,我们只需要从左右依次选择m个进行计算即可。

英文有了从小到大的排序,所以 B[i+1]>B[i] ,因此,这里的绝对值符号可以直接去除,而 m 个数相加也可以进行简化。

由此可以得知, 代码相对较简单,代码如下:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 10;
int B[N];
signed main()
{
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        cin >> B[i];
    }
    //排序
    sort(B, B + n);
    int ans = 1e10;
    //计算和,每次取最小的
    for (int i = 0; i < n - m + 1; i++)
    {
        ans = min(ans,B[i + m - 1] * B[i + m - 1] - B[i] * B[i]);
    }
    cout << ans;
}
相关推荐
John_ToDebug1 小时前
浏览器内核崩溃深度分析:从 MiniDump 堆栈到 BindOnce UAF 机制(未完待续...)
c++·chrome·windows
你撅嘴真丑1 小时前
字符环 与 变换的矩阵
算法
早点睡觉好了1 小时前
重排序 (Re-ranking) 算法详解
算法·ai·rag
gihigo19982 小时前
基于全局自适应动态规划(GADP)的MATLAB实现方案
算法
念越2 小时前
数据结构:栈堆
java·开发语言·数据结构
txinyu的博客2 小时前
解析muduo源码之 SocketsOps.h & SocketsOps.cc
c++
dear_bi_MyOnly2 小时前
【多线程——线程状态与安全】
java·开发语言·数据结构·后端·中间件·java-ee·intellij-idea
ctyshr3 小时前
C++编译期数学计算
开发语言·c++·算法
浪客灿心3 小时前
list_stack_queue
数据结构·list
zh_xuan3 小时前
最小跳跃次数
数据结构·算法