HDU 6209 二分分數

2021-08-08 14:42:11 字數 1083 閱讀 1466

題目鏈結

思路:簡單轉化之後,此題就是給你乙個小數,叫你輸出值最接近的分數,劃成最簡形式。

考慮二分分數。

若不知道起始範圍,則可以從:01−

10(+

oo

)\frac - \frac(+oo)

10​−01

​(+o

o)進行二分。

出於效率和最簡分數的考慮,我們每次二分的值不是求端點的平均數。

比如對於[ab

,cd]

[\frac,\frac]

[ba​,d

c​],我們二分的新的分數為:

a +c

b+

d\frac

b+da+c

​ 然後進行比較而決定左移右移即可。

另外我們可以先算答案分數的整數值,來縮小起始的二分範圍。

如果第乙個不小於該小數的整數值為val,則範圍應該為:

[ (v

al−1

)1,v

al1]

[\frac,\frac]

[1(val

−1)​

,1va

l​]**:

#include

using

namespace std;

typedef

long

long ll;

typedef

long

double lb;

ll k,lz,rz,lm,rm,val,a,b;

lb mn,aim;

lb abs

(lb x)

intmain()

lz = val-

1,lm =

1;aim = k*k;

rz = val,rm =

1;mn =

1e60

;while(1

)if(now > aim)

else

}printf

("%i64d/%i64d\n"

,a,b);}

return0;

}

Codechef MONSTER 整體二分 分塊

有n個敵人,編號為0到n 1,每個敵人都有乙個血量h。現在有q次操作,每次給出兩個數x和y,表示將所有編號為x的子集 二進位制下 的敵人血量都減去y。要求每次操作後輸出還剩下多少個敵人的血量大於0。n 217,m 218,h,y 109n 2 17,m 218,h y 10 9已經頹廢到開始寫題了。...

二分 分蛋糕問題

題意 n種蛋糕,每個半徑給出,要分給f 1個人,要求每個人分的體積一樣 形狀可以不一樣 而且每人只能分得一種蛋糕 不能多種蛋糕拼在一起 求每人最大可以分到的體積。輸入 3 3 34 3 3 1 24 510 5 1 4 2 3 4 5 6 5 4 2 輸出 25.1327 3.1416 50.265...

HDU 1597 二分 數學

題目鏈結 思路 不知道為什麼我的搜尋專題出現了這道題.好像是可以折半搜尋,但感覺複雜度很高,觀察了一下 第乙個數 1位 第二個數 2位 第n個數 n位 那如果連起來,連線完第n個數,這個數的位數為 1 2 3 4 n 這不正是等差數列求和嗎?然後我用下面的 簡單測了一下。include using ...