2020百度之星初賽三Discount C 解法

2021-10-08 19:01:43 字數 1595 閱讀 9803

problem description

學皇來到了乙個餐館吃飯。他覺得這家餐館很好吃,於是就想辦個會員。

一共有 n 種會員充值卡**,假設學皇這餐飯的消費為 a 元,選擇第 i 種**,需要充值 b[i]∗a 的錢,這次吃飯可以打c[i]×10 折,由充值的錢支付(即這次吃飯只需要從充值金額中扣除 a×c[i] 元)。以後用剩餘的充值的錢吃飯不再打折。

請問學皇應該選擇哪個**(必須選擇恰好乙個**),使得優惠的比例最大?

優惠比例的定義是把充的錢用完以後,(本來應該付的錢 - 實際付的錢) / 本來應該付的錢。在這個題目裡,實際付的錢就是這次充值的花費。

input

第一行乙個整數 test(1≤test≤100) 表示資料組數。

對於每組資料,第一行乙個正整數 n(1≤n≤100) 表示**的數目。

接下來 n 行,每行乙個正整數 bi 和乙個小數 c[i](0≤c[i]≤1,c[i] 最多包含兩位小數)。

output

對於每組資料,輸出乙個五位小數表示最大的優惠比例。如果小數點後超過五位,四捨五入到五位。

sample input

1

22 0.5

3 0.1

sample output

0.23077

樣例解釋

對於第一種**,優惠比例為 0.5a / (2a + 0.5a) = 0.2;

對於第二種**,優惠比例為 0.9a / (3a + 0.9a) = 9 / 39;

分析

題目是找出最大的優惠比例,優惠比例的定義也很清楚(本來應該付的錢-實際付的錢)/本來應該付的錢。針對每組資料計算出優惠比例即可。

本來應該付的錢=a*吃飯的次數

吃飯的次數=(b[i]*a-c[i]*a)/a+1

實際付的錢=b[i]*a

化簡之後等量關係為

優惠比例=(1-c[i])/(b[i]-c[i]+1);

c++**

#include

using

namespace std;

intmain()

printf

("%.5f\n"

,max_disc);}

return0;

}

2020百度之星初賽一 B GPA

problem description 小沃沃一共參加了 4 門考試,每門考試滿分 100 分,最低 0 分,分數是整數。給定四門考試的總分,請問在最優情況下,四門課績點的和最高是多少?分數與績點之間的對應關係如下 95 100 4.3 90 94 4.0 85 89 3.7 80 84 3.3 7...

2020百度之星初賽一 Matrix

problem description 有乙個二維平面,給定 length 1 length 2 length 3 length 4 畫出 4 個正方形區域。第 i 個區域為 x,y x length i y length i 對於乙個整點 x,y 其權值為 x y cnt,其中 cnt 為覆蓋該點...

2020百度之星初賽二 Covid

problem description 科學家小沃沃在研究病毒傳播的規律,從而控制疫情。有 n 個人,編號分別為 1,2,n。我們用螢光粉代替病毒,編號為 1 的人,在第 0 時刻塗上了螢光粉,剩下的人在第 0 時刻沒有塗。對於第 i 個人,我們知道這個人在哪些時刻出現在了哪些地方。如果時刻 t,某...