jzoj題目友鏈
在黑板上寫了n
nn個正整數組成的乙個數列,進行如下操作: 每次擦去其中的兩個數a
aa和b
bb,然後在數列中加入乙個數a×b
+1
a×b+1
a×b+
1,如此下去直至黑板上 剩下乙個數,在所有按這種操作方式最後得到的數中,最大的為max
maxma
x,最小的為min
minmi
n, 則該數列的極差定義為m=m
ax-m
in
m=max-min
m=max-
min。
請你程式設計,對於給定的數列,計算極差mmm。
第一行是數列的長度n
nn(不超過10
1010
),第二行起是數列中n
nn個數,相鄰2
22個數由空格分開;
每個數均不超過100
10010
0.輸出乙個整數表示數列極差m
樣例輸入
3
1 2 3
樣例輸出2
分析:這道題拿到手呢,可以馬上看出來,這是用排序+模擬來做的。先把所有數排個序,然後做加減法就好了,就是這麼簡單!
code:
#include
//van♂能頭
using
namespace std;
int s[
10001
],j[
10001];
//陣列可以開大一點,防止re
intcmp
(int a,
int b)
intmain()
sort
(s,s+n)
;//從小到大排序
for(
register
int i=
1;i++i)
int max=s[n-1]
;//標記最大數
sort
(j,j+n,cmp)
;for
(register
int i=
1;i++i) j[i]
=j[i-1]
*j[i]+1
;//同上
int min=j[n-1]
;//此處時最小數
cout/極差
return exit_success;
//van♂美結束
}
嗯這篇blog就到這裡了,樓下**字,歡迎掃一掃檢視↓。。。 數列極差問題
在黑板上寫了n個正整數排成的乙個數列,進行如下操作 每次擦去其中的兩個數a和b,然後在數列中加入乙個數a b 1,如此下去直至黑板上剩下乙個數,在所有按這種操作方式最後得到的數中,最大的記為max,最小的記作min,則該數列的極差定義位m max min。問題分析 下面通過例項來認識題目中描述的計算...
貪心 數列極差問題
題目描述 我就說你在忽悠我吧,我剛才問了昆士蘭大學的好多魔法師,他們根本就沒有乙個人想過做什麼時間旅行的實驗,但搞笑的是,他們居然對你的理論很感興趣,想找個時間和你做進一步的討論。哎,我還以為他們和我一樣聰明呢,想不到這麼容易上當受騙。小墨老師擺出一幅你騙不了我的表情。唉,你太自以為是了,這樣吧,你...
問題 A 貪心 數列極差問題
題目描述 我就說你在忽悠我吧,我剛才問了昆士蘭大學的好多魔法師,他們根本就沒有乙個人想過做什麼時間旅行的實驗,但搞笑的是,他們居然對你的理論很感興趣,想找個時間和你做進一步的討論。哎,我還以為他們和我一樣聰明呢,想不到這麼容易上當受騙。小墨老師擺出一幅你騙不了我的表情。唉,你太自以為是了,這樣吧,你...