[蓝桥杯 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;
}
相关推荐
17(无规则自律)13 小时前
Leetcode第二题:用 C++ 解决字母异位词分组
c++·leetcode·哈希算法
样例过了就是过了13 小时前
LeetCode热题100 子集
数据结构·c++·算法·leetcode·dfs
I_LPL13 小时前
day52 代码随想录算法训练营 图论专题5
java·算法·图论·并查集
jing-ya13 小时前
day 49 图论part1
算法·深度优先·图论
free-elcmacom14 小时前
C++三种参数传递方式:从交换函数看值、指针与引用的区别
开发语言·c++
想吃火锅100514 小时前
【leetcode】98.验证二叉搜索树
算法·leetcode·职场和发展
一叶落43814 小时前
【LeetCode 172】阶乘后的零(C语言详解 | 数学规律 + 对数时间复杂度)
c语言·数据结构·算法·leetcode·动态规划
自信1504130575914 小时前
数据结构初阶——二叉树之——堆的实现
c语言·数据结构·算法
Barkamin14 小时前
(有头)链表的实现(Java)
java·数据结构·链表
柏木乃一14 小时前
Linux线程(8)基于单例模式的线程池
linux·运维·服务器·c++·单例模式·操作系统·线程