藍橋杯 小盆友排隊

2022-05-05 09:42:12 字數 986 閱讀 6015

問題描述

n 個小朋友站成一排。現在要把他們按身高從低到高的順序排列,但是每次只能交換位置相鄰的兩個小朋友。

每個小朋友都有乙個不高興的程度。開始的時候,所有小朋友的不高興程度都是0。

如果某個小朋友第一次被要求交換,則他的不高興程度增加1,如果第二次要求他交換,則他的不高興程度增加2(即不高興程度為3),依次類推。當要求某個小朋友第k次交換時,他的不高興程度增加k。

請問,要讓所有小朋友按從低到高排隊,他們的不高興程度之和最小是多少。

如果有兩個小朋友身高一樣,則他們誰站在誰前面是沒有關係的。

輸入格式

輸入的第一行包含乙個整數n,表示小朋友的個數。

第二行包含 n 個整數 h1 h2 … hn,分別表示每個小朋友的身高。

輸出格式

輸出一行,包含乙個整數,表示小朋友的不高興程度和的最小值。

樣例輸入

33 2 1

樣例輸出

9樣例說明

首先交換身高為3和2的小朋友,再交換身高為3和1的小朋友,再交換身高為2和1的小朋友,每個小朋友的不高興程度都是3,總和為9。

資料規模和約定

對於10%的資料, 1<=n<=10;

對於30%的資料, 1<=n<=1000;

對於50%的資料, 1<=n<=10000;

對於100%的資料,1<=n<=100000,0<=hi<=1000000。

#include #includeusing namespace std;

long long n=0;

int ang[100000]=; //swap次數

long long heigt[100000]=;//身高陣列

long long sum=0;

int main()

//初始化身高陣列

for(int i=0;iheigt[j])

}//尋找逆序對

//標記好交換次數

for(int i=0;i

小盆友,你又把大家逗笑了

1 一家三口在那看神話劇,劇中一女昏迷不醒,需要仙草救命,其夫歷經萬難終於拿到仙草。這時候四歲的兒子來了一句 原來是根蔥呀!2 看到朋友家的三歲小男孩長的很像女孩子,我就問 豆豆,你是男孩還是女孩啊?孩子 我是男子漢!我 你明明是女孩子啊!孩子急了,馬上脫褲子,然後指著下面說 叔叔,我有小jj的。3...

小朋友排隊 藍橋杯

因此我們可以借助樹狀陣列來求解前面比它大的個數,即逆序對 求後面比它小的個數的時候我們可以倒著插入,直接統計即可 因為有的資料為0,所以我們需要將所有插入的資料 1 另外統計的時候要處理相同的數,統計前面的數的時候不用減1,統計後面的數的時候需要減1 這樣處理的原因自己思考一下便出來了 includ...

藍橋杯 小朋友排隊

歷屆試題 小朋友排隊 時間限制 1.0s 記憶體限制 256.0mb 問題描述 n 個小朋友站成一排。現在要把他們按身高從低到高的順序排列,但是每次只能交換位置相鄰的兩個小朋友。每個小朋友都有乙個不高興的程度。開始的時候,所有小朋友的不高興程度都是0。如果某個小朋友第一次被要求交換,則他的不高興程度...