很久沒有碰二分查詢的題了~今天冷不丁想要去杭電分一發.可是找了很久沒有裸的二分題0.0
所以還是回俺們理工oj分了一發 希望能牢固一下二分查詢的知識吧~.
求方程的解
time limit: 1000 ms
memory limit: 65535 k
total submit: 317(121 users)
total accepted: 140(112 users)
rating:
special judge: no
description
給乙個方程f(x) = a^x + b^x - c^x = 0, 對於給定的[e, f](e <= f)範圍內的數,求解x。
其中a, b, c, e, f均為整數,a, b, c >= 1。
input
有多組測試資料。
對於每組測試資料,有一行,每行5個整數,分別表示a, b, c, e, f。
輸入資料保證a, b, c, e, f都在32位有符號數表示的範圍內,a^x, b^x, c^x在double表示的範圍內。
所給資料保證f(x)單調。
output
如果在指定範圍內有解,輸出一行,包括x, x精確到小數點後6位。
如果無解,則輸出一行"no answer!"。
sample input
2 3 4 1 2
sample output
1.507127
hint
首先解題之前先介紹一下二分查詢:
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的
關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置
記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。
二分查詢一直是我理解很費勁的乙個小的演算法~每次弄遇到帶有二分查詢定點的題就默默的先溜走~
這裡貼上ac**:
/*搞一發二分查詢~*/
#include#include#includeusing namespace std;
int a,b,c,e,f;
double ****(double m)
int main()
if(****(e)>0&&****(f)>0)
double mid;
while(r-l>0.00000001)//二分查詢核心**~
printf("%.6lf\n",mid);}}
0.0 哈理工oj618 Mod 二分查詢
kim剛剛學會c語言中的取模運算 mod 他想要研究一下乙個數字a模上一系列數後的結果是多少。幫他寫個程式驗證一下。input 第一行乙個整數t代表資料組數。接下來t組資料,第一行乙個整數n,接下來n個數字ai 接下來一行乙個整數m,接下來m個數字bi。output 對於每個bi,輸出bi a1 a...
hrbust 1187 求方程的解 二分
求方程的解 time limit 1000 ms memory limit 65535 k total submit 434 173 users total accepted 194 156 users rating special judge no description 給乙個方程f x a x...
哈理工OJ 1584 青蛙過河 貪心 二分
青蛙王國一年一度的遊戲又開始了,這個遊戲要求青蛙必須跳過河。河的寬度是 l 河裡有n塊石頭,這n塊石頭從河的一邊筆直的連到另一邊。青蛙只能踩著石頭過河,如果它們掉到水裡,將被淘汰出局。遊戲規定青蛙最多跳m次。現在青蛙想要知道如果在這m步內跳到岸的那邊,它一步最長需要跳多長。input 輸入包括多組測...