[蓝桥杯 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;
}
相关推荐
yuhao__z2 小时前
代码随想录算法训练营第五十六天| 图论2—卡码网99. 岛屿数量(dfs & bfs)
算法·深度优先·图论
小wanga3 小时前
【算法专题十】哈希表
算法·哈希算法·散列表
強云4 小时前
内存池(C++)
c++
JANYI20185 小时前
在c++中老是碰到string&,这是什么意思?
开发语言·c++
S01d13r5 小时前
LeetCode 解题思路 45(分割等和子集、最长有效括号)
算法·leetcode·职场和发展
锦夏挽秋6 小时前
Qt 信号槽机制底层原理学习
c++·qt
天堂的恶魔9466 小时前
C++ - 仿 RabbitMQ 实现消息队列(1)(环境搭建)
开发语言·c++·rabbitmq
理想奋斗中7 小时前
【LeetCode Hot100 | 每日刷题】二叉树的层序遍历
算法·leetcode·bfs
阳洞洞7 小时前
leetcode 24. 两两交换链表中的节点
数据结构·leetcode·链表
JCBP_8 小时前
C++(1)
开发语言·c++·算法