數列極差 優先佇列

2021-10-10 03:03:38 字數 712 閱讀 7354

題目描述

佳佳的老師在黑板上寫了乙個由 n 個正整數組成的數列,要求佳佳進行如下操作:每次擦去其中的兩個數 a 和 b,然後在數列中加入乙個數a×b+1,如此下去直至黑板上剩下乙個數為止,在所有按這種操作方式最後得到的數中,最大的為max,最小的為 min, 則該數列的極差定義為 m=max−min。

由於佳佳忙於準備期末考試,現請你幫助他,對於給定的數列,計算出相應的極差 m。

輸入格式

第一行為乙個正整數 n 表示正整數序列的長度;

在接下來的 n 行中,每行輸入乙個正整數。

接下來的一行有乙個 0,表示資料結束。

輸出格式

輸出只有一行,為相應的極差 d。

樣例樣例輸入31

230樣例輸出

2

#include

#include

#include

using

namespace std;

int m,a;

intmain()

while

(q.size()

!=1)int maxx=q.

top();

while

(s.size()

!=1)int minn=s.

top();

printf

("%d\n"

,maxx-minn);}

}

數列極差問題

在黑板上寫了n個正整數排成的乙個數列,進行如下操作 每次擦去其中的兩個數a和b,然後在數列中加入乙個數a b 1,如此下去直至黑板上剩下乙個數,在所有按這種操作方式最後得到的數中,最大的記為max,最小的記作min,則該數列的極差定義位m max min。問題分析 下面通過例項來認識題目中描述的計算...

貪心 數列極差

時間限制 1 sec 記憶體限制 128 mb 提交 9 解決 5 提交 狀態 討論版 命題人 add zmx 在黑板上寫了n個正整數組成的乙個數列,進行如下操作 每次擦去其中的兩個數a和b,然後在數列中加入乙個數a b 1,如此下去直至黑板上剩下乙個數,在所有按這種操作方式最後得到的數中,最大的為...

JZOJ 數列極差問題

jzoj題目友鏈 在黑板上寫了n nn個正整數組成的乙個數列,進行如下操作 每次擦去其中的兩個數a aa和b bb,然後在數列中加入乙個數a b 1 a b 1 a b 1,如此下去直至黑板上 剩下乙個數,在所有按這種操作方式最後得到的數中,最大的為max maxma x,最小的為min minmi...