二分 數學 NOIP普及組T3 物理實驗

2021-09-28 22:21:36 字數 2217 閱讀 7576

題目描述

小l目前正在他的實驗室裡研究高能粒子。他發現了一種神奇的粒子,小l稱其為l粒子。l粒子擁有著n

nn個價位,第i

ii個價位對應儲存著大小為a

ia_i

ai​的勢能,並且a

ia_i

ai​互不相同。現在小l想要做乙個實驗來研究l粒子的性質,他首先會選出l粒子的三種價位x,y

,z(a

x)x,y,z(axx,

y,z(

ax),一開始l粒子處於價位x

xx,然後小l會給l粒子充能,使其價位公升高至z

zz,然後控制l粒子釋放能量,使其價位跌落至y

yy,最後l粒子會自發地流失能量,使其價位回到x

xx。為了盡可能地利用能量,小l希望這個實驗的能量利用效率 最大。但由於實驗裝置過於老舊,小l並不能給l粒子充超過m

mm能量(也就是說az−

axaz-ax

az−a

x不能大於m

mm),否則實驗儀器會損壞。小l想知道他做實驗的能量利用效率最大是多少,但他還有別的事情要忙,於是他把這個問題交給了你。

輸入

第一行乙個整數t

tt,表示資料組數。

接下來每組資料第一行兩個整數n,m

n,mn,

m,意義如題麵中所述。

第二行n

nn個整數,第i個表示l粒子價位i

ii儲存的勢能a

ia_i

ai​.

輸出

對於每組資料輸出一行乙個實數,表示最大的效率,如果小l不能完成實驗,輸出-1.

你與標準答案的絕對誤差不能超過10^(-9)。

樣例輸入

15 5

1 2 5 8 9

樣例輸出

0.75

資料範圍限制

思路這。。。這應該是道數學題吧 (數學題太難了 效率=

(z−y

)/(z

−x)效率=(z-y)/(z-x)

效率=(z−

y)/(

z−x)

,因為(z−

y)(z-y)

(z−y

)是可以運用的能量,(z−

x)(z-x)

(z−x

)是總能量。(後面的解釋請dalao們自動忽略)

那為了方便求解,我們就把ta變形一下:求最小的(y−

x)/(

z−x)

(y-x)/(z-x)

(y−x)/

(z−x

)。嗯~ o( ̄▽ ̄)o,這個好求多了。要保證x−y

x-yx−

y最小,z−x

z-xz−

x最大。先排個序 (不要問我為什麼,因為要用二分,i

ii列舉x

xx,那麼y=a

[i+1

]y=a[i+1]

y=a[i+

1]。z

zz是最大的乙個減x

<=m

x<=m

x<=m

的a

ia_i

ai​。怎麼求z

zz呢?當然是二分啦 (廢話)

#include
#include

#include

using namespace std;

int t,n,m,a[

100100];

double gun;

int main()

//二分

gun=

max(gun,

(a[r]

-a[j])*

1.0/

(a[r]

-a[i]))

;//(z-y)/(z-x)最大}if

(gun!=0)

printf

("%0.12f\n"

,gun)

;else

printf

("-1\n");

//劃重點

}}

noip 2017 普及組 T3 棋盤

有乙個m m的棋盤,棋盤上每乙個格仔可能是紅色 黃色或沒有任何顏色的。你現在要從棋盤的最左上角走到棋盤的最右下角。任何乙個時刻,你所站在的位置必須是有顏色的 不能是無色的 你只能向上 下 左 右四個方向前進。當你從乙個格仔走向另乙個格仔時,如果兩個格仔的顏色相同,那你不需要花費金幣 如果不同,則你需...

NOIP2008 普及組 T3 傳球遊戲

上體育課的時候,小蠻的老師經常帶著同學們一起做遊戲。這次,老師帶著同學們一起做傳球遊戲。遊戲規則是這樣的 n個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以把球傳給自己左右的兩個同學中的乙個 左右任意 當老師在此吹哨子時,傳球停止,此時,拿著球沒有傳出去的那個同...

NOIP2014普及組複賽T3 螺旋矩陣

乙個n行n列的螺旋矩陣可由如下方法生成 從矩陣的左上角 第1行第1列 出發,初始時向右移動 如果前方是未曾經過的格仔,則繼續前進,否則右轉 重複上述操作直至經過矩陣中所有格仔。根據經過順序,在格仔中依次填入1,2 3,n21,2,3,n 2 1,2,3,n2 便構成了乙個螺旋矩陣。下圖是乙個n 4 ...