4145 放棄考試 (二分查詢)

2022-05-10 07:38:00 字數 1274 閱讀 1893

總時間限制: 

1000ms

記憶體限制: 

65536kb

描述在一門課程中,一共有n場考試。假如你在i場考試中可以答對bi

道題中的ai

道,那麼你的累計平均分定義為:100·σai

/σbi

。已知你這i場考試的答題情況,並且允許你放棄其中的k場考試,請你確定你最高能夠得到多少的累計平均分。

假設該課程一共有3門考試,你的答題情況為5/5,0/1和2/6。如果你每門都參加,你的累計平均分為100·(5+0+2)/(5+1+6)= 50分。如果你放棄第3場考試,你的累計平均分則提高到了100·(5+0)/(5+1)= 83.33 ≈ 83分。

輸入有多組測試資料,每組測試資料報括3行。

每組測試資料第一行有兩個數n和k,接下來一行有n個數ai,最後一行n個數bi。

(1 ≤ k < n ≤ 1000) (1 ≤ ai ≤ bi ≤ 1, 000, 000, 000)。

輸入的最後一行為0 0,不作處理。

輸出輸出最高的累計平均分。(四捨五入到整數)

樣例輸入

3 1

5 0 2

5 1 6

4 21 2 7 9

5 6 7 9

0 0

樣例輸出

83

100

**

最初的思路是把每一場的勝率排序,從高往底選擇前n-k個,但是有正確率為零的場次要帶入比較討論,步驟就比較繁瑣。

因此直接來個二分查詢幹。

#include using

namespace

std;

int a[1005],b[1005

],n,k;

double ans,y[1005

];bool check(double

v) sort(y,y+n);

double sum=0

;

for(int i=n-1; i>=k; i--)

if(sum>=0)return

true

;

else

return

false;}

void

fun()

ans=left*100;}

intmain()

for(int i=0; i)

fun();

printf(

"%.0lf\n

",ans);

}return0;

}

NWPU演算法考試複習 二分查詢

描述 給定乙個單調遞增的整數序列,問某個整數是否在序列中。輸入第一行為乙個整數n,表示序列中整數的個數 第二行為n n不超過10000 個整數 第三行為乙個整數m m不超過50000 表示查詢的個數 接下來m行每行乙個整數k。輸出每個查詢的輸出佔一行,如果k在序列中,輸出yes,否則輸出no。輸入樣...

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...