(file io): input:atom.in output:atom.out
時間限制: 1000 ms 空間限制: 262144 kb 具體限制
題目描述
小l目前正在他的實驗室裡研究高能粒子。他發現了一種神奇的粒子,小l稱其為l粒子。l粒子擁有著n
nn個價位,第i個價位對應儲存著大小為aiai
ai的勢能,並且aiai
ai互不相同。現在小l想要做乙個實驗來研究l粒子的性質,他首先會選出l粒子的三種價位x,y
,z(ax),
x,y,z(axx,
y,z(
ax),
一開始l粒子處於價位x
xx,然後小l會給l粒子充能,使其價位公升高至z
zz,然後控制l粒子釋放能量,使其價位跌落至y
yy,最後l粒子會自發地流失能量,使其價位回到x
xx。為了盡可能地利用能量,小l希望這個實驗的能量利用效率 最大。但由於實驗裝置過於老舊,小l並不能給l粒子充超過m能量(也就是說az−
axaz-ax
az−a
x不能大於m
mm),否則實驗儀器會損壞。小l想知道他做實驗的能量利用效率最大是多少,但他還有別的事情要忙,於是他把這個問題交給了你。
輸入
第一行乙個整數t
tt,表示資料組數。
接下來每組資料第一行兩個整數n,m
,n,m,
n,m,
意義如題麵中所述。
第二行n
nn個整數,第i個表示l粒子價位i儲存的勢能ai.
輸出
對於每組資料輸出一行乙個實數,表示最大的效率,如果小l不能完成實驗,輸出−1-1
−1.你與標準答案的絕對誤差不能超過10(
−9)10^(-9)
10(−9)
。(後來竟然發現題目資料都保留了12位。。。。)
樣例輸入
15 5
1 2 5 8 9
樣例輸出
0.750000000000
資料範圍限制
解題思路
遙想當年,竟然不會求效率。。。。哎~
由題可知,效率等於(z−
y)/(
z−x)
(z-y)/(z-x)
(z−y)/
(z−x
),要大,也就是(z−
y)/(
y−x)
(z-y)/(y-x)
(z−y)/
(y−x
)要大,也就是(y−
x)/(
z−y)
(y-x)/(z-y)
(y−x)/
(z−y
)要小 ,(我太難了) 。
要想效率高,z
zz要大,y
yy要小,且x
x<
zm,x
<
yx<
y<
z,y是乙個定值(大於且緊鄰x
xx),z
zz要最大且z−x
<
mz-xz−
x<
m我們可以列舉x
xx,二分求zzz。
(搞定)!!!!!!!高興的我打了七個感嘆號
#include
#include
#include
#include
using namespace std;
long long n,m,a[
100852
],j,t;
long long l,r,mid;
double ans=0;
int main()
ans=
max(ans,
1.0*
(a[l]
-a[j])/
(a[l]
-a[i]))
;}if(ans==0)
cout<
<
else
printf
("%.12f\n"
,ans);}
return0;
}**二
#include
#include
#include
#include
using namespace std;
long long n,m,a[
100852
],j,t;
long long l,r,mid;
double ans=0;
int main()
ans=
max(ans,
1.0*
(a[l]
-a[j])/
(a[l]
-a[i]))
;}if(ans==0)
cout<
<
else
printf
("%.12f\n"
,ans);}
return0;
}
二分 數學 NOIP普及組T3 物理實驗
題目描述 小l目前正在他的實驗室裡研究高能粒子。他發現了一種神奇的粒子,小l稱其為l粒子。l粒子擁有著n nn個價位,第i ii個價位對應儲存著大小為a ia i ai 的勢能,並且a ia i ai 互不相同。現在小l想要做乙個實驗來研究l粒子的性質,他首先會選出l粒子的三種價位x,y z a x...
HDU 1597 二分 數學
題目鏈結 思路 不知道為什麼我的搜尋專題出現了這道題.好像是可以折半搜尋,但感覺複雜度很高,觀察了一下 第乙個數 1位 第二個數 2位 第n個數 n位 那如果連起來,連線完第n個數,這個數的位數為 1 2 3 4 n 這不正是等差數列求和嗎?然後我用下面的 簡單測了一下。include using ...
python中二分查詢
二分查詢也稱折半查詢,它的效率較高。但是二分查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。寫二分查詢時有兩個方法,乙個是用遞迴,乙個不用遞迴。用遞迴的方法如下 coding utf 8 def binary search alist,item 二分查詢。遞迴法 n len ali...