• 排队


    洛洛在外出旅游的时候发现社会上文明的现象越来越多,人们在买票的时候都会自发地排队等候。
    遗憾的是排队的人身高参差不齐,有时候前后两人之间的身高相差太大,缺乏一些美感。
    如果把前后两人的身高差(差值为正数)表示为两者前后相邻时产生的违和度,一段连续的人群因为前后两人身高不同而产生的违和度之和就可以被称为违和值。洛洛希望知道在队伍哪一段,且该段队伍由连续的m个人组成,其违和值最小。

    输入
    第一行输入两个正整数 n,m,n表示队伍的总人数,m表示某一段的人数。
    第二行输入n个整数,表示队伍中n个人的身高(单位:厘米)。

    输出
    输出包含一个整数,即最小的违和值。

    样例输入 Copy
    样例输入1
    4 3
    1 2 4 7

    样例输入2
    4 3
    10 7 5 4
    样例输出 Copy
    样例输出1
    3

    样例输出2
    3

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 1e6 + 10;
    int mp[maxn],mm[maxn];
    int n,m,ans,a;
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);
        cout.tie(0);
        cin >> n >> m;
        for(int i = 0; i < n; i++){
            cin >> mp[i];
            if(i) mm[i] = abs(mp[i] - mp[i - 1]);
        }
    
        for(int i = 1; i < m;i++)
            ans += mm[i];
        a = ans;
        for(int i = m; i < n; i++){
            ans = ans - mm[i - m + 1] + mm[i];
            a = min(ans, a);
        }
        cout << a << endl;
        return 0;
    }
    
  • 相关阅读:
    面试题:redis事务
    哲学家就餐问题
    面试题:Redis常见性能问题和解决方案?
    取势、明道、优术、践行、合众
    自主可控和开源
    关于独立思考
    警惕软件复杂度困局
    如何构建研发体系
    大数据整体链路
    银行数仓的建设实践
  • 原文地址:https://www.cnblogs.com/xcfxcf/p/12301593.html
Copyright © 2020-2023  润新知