計蒜客題目 Home Work

2021-08-15 17:30:09 字數 1439 閱讀 2376

臨近開學了,大家都忙著收拾行李準備返校,但 i_love_c 卻不為此擔心! 因為他的心思全在暑假作業上:目前為止還未開動。

暑假作業是很多張試卷,我們這些從試卷裡爬出來的人都知道,卷子上的題目有選擇題、填空題、簡答題、證明題等。而做選擇題的好處就在於工作量很少,但又因為選擇題題目都普遍很長。如果有 5

5 張試卷,其中 4

4 張是選擇題,最後一張是填空題,很明顯做最後一張所花的時間要比前 4

4 張長很多。但如果你只做了選擇題,雖然工作量很少,但表面上看起來也已經做了 \frac54

​ 的作業了。

i_love_c決定就用這樣的方法來蒙混過關,他統計出了做完每一張試卷所需的時間以及它做完後能得到的價值(按上面的原理,選擇題越多價值當然就越高咯)。

現在就請你幫他安排一下,用他僅剩的一點時間來做最有價值的作業。

測試資料報括多組。每組測試資料以兩個整數 m,n(1\leq m\leq 20, 1\leq n\leq 10000)m,

n(1≤

m≤20

,1≤n

≤100

00) 開頭,分別表示試卷的數目和 i_love_c 剩下的時間。接下來有 m

m 行,每行包括兩個整數 t,v(1\leq t\leq n,0t,

v(1≤

t≤n,

0<

v<10

000)

,分別表示做完這張試卷所需的時間以及做完後能得到的價值,輸入以 0\:000

結束。對應每組測試資料輸出 i_love_c 能獲得的最大價值。保留小數點 22 位

float 的精度可能不夠,你應該使用 double 型別。

樣例輸入

4 20

4 10

5 22

10 3

1 20 0

樣例輸出

37.00

#include#includeusing namespace std;

struct hm{

double t,v;

double tv;

bool operator < (const hm &x) const{

return tv思路:自己寫乙個struct用於儲存作業型別,包含作業費時(double t)、作業價值(double v)、作業價效比(double tv)(後續寫的程式裡其實tv是**/效能也即t/v,此題中作業消耗的時間相當於商品的**(要花費掉的),作業的價值相當於商品的效能(帶來價值的)),並且過載小於運算子,使得通過後續sort函式能夠將tv小的hm類排在前面。main函式中需要注意:有多組輸入,以0 0作為結束,因此對輸入進行特殊判斷。

總結:1、假如用scanf對float型別的變數輸入,但是錯誤寫成scanf("%d, &x); 程式不會報錯,但是x的值會變成0.00,一定要注意

2、%lf用於輸入double型別變數,%f用於輸入float型別變數。

繼續加油!

計蒜客題目 加一

陣列內存放了一些個位數字,組成乙個大數 從高位到低位 現在將這個數加 1,並輸出加一以後的結果。例如 a 2,3,1,1,4 則結果為 2,3,1,1,5 a 7,8,9 則結果為 7,9,0 第一行輸入乙個正整數 n 1 n 100 接下來的一行,輸入用空格分隔的 n 個 0 到 9 的非負整數組...

計蒜客題目 奇怪的國家

有乙個奇怪的國家,裡面的國民對於事情的態度永遠只有兩面。當兩個人遇到一起討論乙個事情的時候 兩個持贊同觀點的人遇到一起後會對這個事情都繼續贊同 乙個持贊同觀點的人遇到乙個持不贊同觀點的人的時候,兩人都會不再繼續贊同 兩個持不贊同觀點的人遇到一起討論後反而會對這個事情開始贊同。輸入包括兩行,每行包括 ...

計蒜客題目 最大子陣列

在乙個陣列中找出和最大的連續幾個數。至少包含乙個數 例如 陣列a 2,1,3,4,1,2,1,5,4 則連續的子串行 4,1,2,1 有最大的和6.輸入格式 第一行輸入乙個不超過1000的整數n。第二行輸入n個整數a i 輸出格式 第一行輸出乙個整數,表示最大的和。樣例輸入 3 1 1 2樣例輸出 ...